2017-05-09 2 views
-2

내 앱이 삽입/업데이트/삭제/데이터베이스 앱 표시입니다. 지금까지 삽입 부분을 성공적으로 관리했지만 데이터베이스 내용을 표시하려고 할 때 내 응용 프로그램이 충돌하지만 성공적으로 빌드됩니다.데이터 표시시 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)  
+0

스택 트레이스를 여기에 입력하십시오. –

+0

코드의 어떤 부분이 충돌했는지 모르는 경우 어떻게 도와 드릴까요? – Denny

+0

@LuizFernandoSalvaterra 정확히 어떻게 찾을 수 있습니까? –

답변

0

이 하나를 시도하십시오.

+0

아직도 내가 viewAll 클래스의 s 번째까지를 엉망, 충돌, 뭔가를 그 "null 객체 참조에서 가상 메소드를 호출하려고 시도했습니다."오류와 관련이 있습니다. 그러나 무엇을 모릅니다. –

+0

@MikeLitoris layout.xml에서 "R.id.BtnPregled"가 동일한 지 여부를 확인하십시오. –