SQLite 데이터베이스에서 국가 목록을 보유하고있는 Android 앱을 만들고 있습니다. 초기 화면에 목록이 표시됩니다. "편집 목록"을 누르면 새로운 활동이 시작되어 새로운 국가에 들어가거나 전체 목록을 삭제할 수 있습니다. 앱은 두 번째 활동에서 버튼을 클릭 할 때까지 완벽하게 작동합니다. 새 국가를 입력하고 추가를 클릭하면 앱에서 중지되었음을 알리는 메시지를 표시하지만 아직 내 데이터베이스에 추가됩니다. 내 모든 버튼 삭제와 동일합니다. 내 logcat에서 오류가 발생하지만 여전히 모든 것을 삭제합니다. 여기 새로운 활동에서 버튼을 누를 때 Android 앱이 충돌 함
public class EditList extends Activity
{
private DBManager db;
Cursor cursor;
EditText editCountry, editYear;
Button add, delete, back;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editCountry = (EditText)findViewById(R.id.editcountry);
editYear = (EditText)findViewById(R.id.edityear);
add = (Button)findViewById(R.id.add);
delete = (Button)findViewById(R.id.delete);
back = (Button)findViewById(R.id.backmain);
//Open database and fill it with content, then close it
db = new DBManager(this);
db.openToWrite();
add.setOnClickListener(buttonAddOnClickListener);
delete.setOnClickListener(buttonDeleteAllOnClickListener);
//------
Log.i("Test", "back to main");
//go back to the main list screen
back = (Button)findViewById(R.id.backmain);
back.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
db.close();
finish();
}
});
}
//insert new country button
Button.OnClickListener buttonAddOnClickListener = new Button.OnClickListener()
{
@Override
public void onClick(View arg0)
{
int year = Integer.parseInt(editYear.getText().toString());
String country = editCountry.getText().toString();
db.insert(year, country);
updateList();
//clear text fields after use
editYear.setText(null);
editCountry.setText(null);
}
};
//delete all button
Button.OnClickListener buttonDeleteAllOnClickListener = new Button.OnClickListener()
{
@Override
public void onClick(View arg0)
{
db.deleteAll();
updateList();
}
};
private void updateList()
{
cursor.requery();
}
}
이 발생하는 로그 캣 오류입니다 : 당신은 결코 당신의 커서를 인스턴스화하지있어
02-07 22:32:31.117: D/AndroidRuntime(2633): Shutting down VM
02-07 22:32:31.117: W/dalvikvm(2633): threadid=1: thread exiting with uncaught exception (group=0xb4e35908)
02-07 22:32:31.158: E/AndroidRuntime(2633): FATAL EXCEPTION: main
02-07 22:32:31.158: E/AndroidRuntime(2633): java.lang.NullPointerException
02-07 22:32:31.158: E/AndroidRuntime(2633): at com.mypackage.msdassignment.EditList.updateList(EditList.java:90)
02-07 22:32:31.158: E/AndroidRuntime(2633): at com.mypackage.msdassignment.EditList.access$1(EditList.java:88)
02-07 22:32:31.158: E/AndroidRuntime(2633): at com.mypackage.msdassignment.EditList$1.onClick(EditList.java:68)
02-07 22:32:31.158: E/AndroidRuntime(2633): at android.view.View.performClick(View.java:4202)
02-07 22:32:31.158: E/AndroidRuntime(2633): at android.view.View$PerformClick.run(View.java:17340)
02-07 22:32:31.158: E/AndroidRuntime(2633): at android.os.Handler.handleCallback(Handler.java:725)
02-07 22:32:31.158: E/AndroidRuntime(2633): at android.os.Handler.dispatchMessage(Handler.java:92)
02-07 22:32:31.158: E/AndroidRuntime(2633): at android.os.Looper.loop(Looper.java:137)
02-07 22:32:31.158: E/AndroidRuntime(2633): at android.app.ActivityThread.main(ActivityThread.java:5039)
02-07 22:32:31.158: E/AndroidRuntime(2633): at java.lang.reflect.Method.invokeNative(Native Method)
02-07 22:32:31.158: E/AndroidRuntime(2633): at java.lang.reflect.Method.invoke(Method.java:511)
02-07 22:32:31.158: E/AndroidRuntime(2633): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
02-07 22:32:31.158: E/AndroidRuntime(2633): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
02-07 22:32:31.158: E/AndroidRuntime(2633): at dalvik.system.NativeStart.main(Native Method)
온라인 90은 무엇입니까? –
커서가 null 인 것 같습니다 – Mike