내 앱이 삽입/업데이트/삭제/데이터베이스 앱 표시입니다. 지금까지 삽입 부분을 성공적으로 관리했지만 데이터베이스 내용을 표시하려고 할 때 내 응용 프로그램이 충돌하지만 성공적으로 빌드됩니다.데이터 표시시 SQLite 앱이 다운 됨
나는 DatabaseHelper라는 하나의 별도 활동을 갖고 있으며, 다른 하나는 ActionDialog에 데이터가 표시되어야하는 활동입니다. 나는 "데이터 표시"내 MainActivity에
DatabaseHelper.java
public DatabaseHelper (Context context) {
super (context, DATABASE_NAME, null, 1);
//SQLiteDatabase db = this.getWritableDatabase();
}
입니다 버튼 ...
public Cursor getAllData(){
SQLiteDatabase db = this.getWritableDatabase();
Cursor res = db.rawQuery("SELECT * FROM "+TABLE_NAME, null);
return res;
}
및 Activity.java
을 쳤을 때그것은 충돌
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pregled);
buttonPregled = (Button)findViewById(R.id.BtnPregled);
viewAll();
}
//
public void viewAll(){
buttonPregled.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Cursor res = myDb.getAllData();
if(res.getCount() == 0){
//show message
showMessage("Error", "Table empty");
return;
}
StringBuffer buffer = new StringBuffer();
while (res.moveToNext()){
buffer.append("ID:"+ res.getString(0)+"\n");
buffer.append("Naslov:"+ res.getString(1)+"\n");
buffer.append("Datum:"+ res.getString(2)+"\n");
buffer.append("Kontakt osoba:"+ res.getString(3)+"\n");
buffer.append("Kontakt broj:"+ res.getString(4)+"\n");
buffer.append("Lokacija:"+ res.getString(5)+"\n");
buffer.append("Pogodba:"+ res.getString(6)+"\n");
buffer.append("Zarada:"+ res.getString(7)+"\n\n");
}
//Show all data
showMessage("Svirke", buffer.toString());
}
});
}
public void showMessage (String title, String Message){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setCancelable(true);
builder.setTitle(title);
builder.setMessage(Message);
builder.show();
}
S 귀하의 DB가 제대로 본 작업은 그래서 전에이 귀하의 DB를 초기화 할 초기화되면
Cursor res = myDb.getAllData();
res.moveToFirst(); // OR you can also write res.moveToPosition(0);
if(res.getCount() == 0)
{
//show message
showMessage("Error", "Table empty");
return;
}
: 압정 추적
05-09 15:20:07.935 4137-4137/com.example.vramba.evis17 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.vramba.evis17, PID: 4137
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.vramba.evis17/com.example.vramba.evis17.PregledActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2702)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2767)
at android.app.ActivityThread.access$900(ActivityThread.java:177)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1449)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5951)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at com.example.vramba.evis17.PregledActivity.viewAll(PregledActivity.java:25)
at com.example.vramba.evis17.PregledActivity.onCreate(PregledActivity.java:20)
at android.app.Activity.performCreate(Activity.java:6289)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2655)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2767)
at android.app.ActivityThread.access$900(ActivityThread.java:177)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1449)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5951)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)
스택 트레이스를 여기에 입력하십시오. –
코드의 어떤 부분이 충돌했는지 모르는 경우 어떻게 도와 드릴까요? – Denny
@LuizFernandoSalvaterra 정확히 어떻게 찾을 수 있습니까? –