При нажатии кнопки "Сохранить" приложение перестало работать.
Пожалуйста, помогите мне с этим вопросом.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login_info);
ref = FirebaseDatabase.getInstance().getReference().child("Member");
btnSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
member.setUserName(name1.getText().toString().trim());
member.setFirstName(name2.getText().toString().trim());
member.setLastName(name3.getText().toString().trim());
member.setEmail(name4.getText().toString().trim());
ref.push().setValue("member");
Toast.makeText(LoginInfo.this,"data Inserted Sucessfully",Toast.LENGTH_LONG).show();
}
});
Ошибка журнала
E/AndroidRuntime: FATAL EXCEPTION: main Процесс: com.example.firebasesign, PID: 20460 java.lang.RuntimeException: Невозможно запустить действие ComponentInfo {com.example.firebasesign/com.example.firebasesign.LoginInfo}: java.lang. NullPointerException: попытка вызвать виртуальный метод "void android.view.View.setOnClickListener(android.view.View $ OnClickListener)" для ссылки на пустой объект в android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2659) в android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2724) на android.app.ActivityThread. -wrap12 (ActivityThread.java) на android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1473) на android.os.Handler. dispatchMessage (Handler.java:102) в android.os.Looper.loop(Looper.java:154) в android.app.ActivityThread.main(ActivityThread.java:6123) в java.lang.reflect.Method.invoke (родной Method) в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:867) в com.android.internal.os.ZygoteIni t.main(ZygoteInit.java:757) Причина: java.lang.NullPointerException: Попытка вызвать виртуальный метод 'void android.view.View.setOnClickListener(android.view.View $ OnClickListener)' для ссылки на пустой объект в com.example.firebasesign.LoginInfo.onCreate(LoginInfo.java:34) на android.app.Activity.performCreate(Activity.java:6672) на android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1140) на android.app. ActivityThread.performLaunchActivity(ActivityThread.java:2612) в android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2724) в android.app.ActivityThread. -wrap12 (ActivityThread.java) в android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1473) в android.os.Handler.dispatchMessage(Handler.java:102) в android.os.Looper.loop(Looper.java:154) в android.app.ActivityThread.main(ActivityThread.java: 6123) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:867) в com.an droid.internal.os.ZygoteInit.main(ZygoteInit.java:757)
На основании вашего журнала объект btnSave
является нулевым. Вам нужно будет получить ссылку на объект, вызвав findViewById перед попыткой setOnClickListener()
btnSave = findViewById(R.id.yourButtonId)
Где yourButtonId - это идентификатор, который вы задали для элемента xml
<Button
android:id="@+id/yourButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
Если вы используете нож для масла, не забудьте добавить
ButterKnife.bind(this);
в ваш метод onCreate()