Я новичок в android. В моей программе я вставляю слово и его определение и нажимая кнопку, он вставляет данные в базу данных. На прослушивателе кликов я написал IF для проверки, являются ли поля пустыми, но во время выполнения даже при вставке данных он вызывает ошибку NullPointerException в событии OnClick. Мне очень нужна помощь ....NullPointerException в OnclickListener
public class MainActivity extends Activity {
DBAdapter db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
db = new DBAdapter(this);
db.open();
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
EditText word = (EditText) findViewById(R.id.et_word);
EditText def = (EditText) findViewById(R.id.et_definition);
if(!String.valueOf(word.getText()).equals("") &
!String.valueOf(def.getText()).equals("")){
db.insertData(String.valueOf(word.getText()), String.valueOf(def.getText()),
DBAdapter.TABLE_DIC);
}else{
Toast.makeText(MainActivity.this, "please insert a word and its definition",
Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
db.close();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
db.open();
}
}
LogCat:
11-23 13:49:45.728: E/AndroidRuntime(15709): FATAL EXCEPTION: main
11-23 13:49:45.728: E/AndroidRuntime(15709): java.lang.NullPointerException
11-23 13:49:45.728: E/AndroidRuntime(15709): at ir.englishdic.MainActivity$1.onClick(MainActivity.java:34)
11-23 13:49:45.728: E/AndroidRuntime(15709): at android.view.View.performClick(View.java:4240)
11-23 13:49:45.728: E/AndroidRuntime(15709): at android.view.View$PerformClick.run(View.java:17721)
11-23 13:49:45.728: E/AndroidRuntime(15709): at android.os.Handler.handleCallback(Handler.java:730)
11-23 13:49:45.728: E/AndroidRuntime(15709): at android.os.Handler.dispatchMessage(Handler.java:92)
11-23 13:49:45.728: E/AndroidRuntime(15709): at android.os.Looper.loop(Looper.java:137)
11-23 13:49:45.728: E/AndroidRuntime(15709): at android.app.ActivityThread.main(ActivityThread.java:5103)
11-23 13:49:45.728: E/AndroidRuntime(15709): at java.lang.reflect.Method.invokeNative(Native Method)
11-23 13:49:45.728: E/AndroidRuntime(15709): at java.lang.reflect.Method.invoke(Method.java:525)
11-23 13:49:45.728: E/AndroidRuntime(15709): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
11-23 13:49:45.728: E/AndroidRuntime(15709): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-23 13:49:45.728: E/AndroidRuntime(15709): at dalvik.system.NativeStart.main(Native Method)
разместить Ваш LogCat – Manishika
Пожалуйста inittialise и 'findViewBy' ваши не Просмотров в' EditText слово OnCliCkListener = (EditText) findViewById (R.id.et_word); EditText def = (EditText) findViewById (R.id.et_definition); ' –
Вам просто нужно научиться читать лог-код. Он расскажет вам, что является нулевым, и часто бывает легко отступить оттуда. Это легко исправить 99,99% времени, и вам, вероятно, никогда не придется публиковать о NPE здесь. Возможно, вам будет сложно найти решение, когда вы новичок в java/android, но именно поэтому вы читаете учебники и код. – keyser