SimpleCursorAdapter를 사용하여 구현 된 ListView가있는 활동이 있습니다. ListView는 SQLite 데이터베이스의 항목을 나열합니다. 문제는 MainActivity의 버튼을 누르면이 활동에 도달한다는 것입니다. 이 시점에서 데이터베이스에 요소가 없으면 응용 프로그램이 "작동을 재개 할 수 없음"이라는 오류를 표시하면서 충돌합니다. 그러나 데이터베이스에 적어도 하나의 요소가있는 경우이 활동은 잘 작동합니다.이 문제를 해결하는 방법을 알고 싶습니다.Android : 활동을 재개 할 수 없습니다. java.lang.RuntimeException
다음은 전체 활동 코드입니다. 도와주세요.
참고 : 다른 응용 프로그램 중 하나에서 정확히 똑같은 작업을 수행했는데, 여기서 볼 수있는 행의 다른 색칠을 제외하고 제대로 작동했습니다. 당신의 onresume의 MTD에서
package com.tintin.scheduler_3;
import android.app.ListActivity;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.widget.SimpleCursorAdapter;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ListView;
public class List_Course extends ListActivity {
DatabaseHelper db;
SimpleCursorAdapter dataAdapter;
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.course_list);
Button add = (Button) findViewById(R.id.add);
add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
startActivity(new Intent(List_Course.this, Add_Course.class));
}
});
Log.v("Button", "On Click Done");
db = new DatabaseHelper(List_Course.this);
Log.v("Button", "On Click Done2");
displayList();
Log.v("Button", "On Click Done3");
db.close();
}
public void onResume(){
Cursor newCursor = db.getAllCourses();
dataAdapter.changeCursor(newCursor);
super.onResume();
db.close();
}
public void displayList(){
Cursor cursor = db.getAllCourses();
if(cursor.getCount() == 0)return;
String from [] = new String[] {db.colName,db.colDisplay};
int to[] = new int[] {R.id.textView1, R.id.textView2};
dataAdapter = new SimpleCursorAdapter(this, R.layout.listitem, cursor, from, to, 0){
public View getView(int position, View convertView, ViewGroup parent){
final View row = super.getView(position, convertView, parent);
if(position % 2 == 0)
row.setBackgroundColor(Color.parseColor("#D8D8D8"));
else
row.setBackgroundColor(Color.parseColor("#D0D0D0"));
return row;
}
};
ListView lv = getListView();
lv.setAdapter(dataAdapter);
registerForContextMenu(lv);
cursor.close();
db.close();
}
}
왜 onResume() 중에 db를 닫고 있습니까? Btw db.getAllCourses()가 반환하는 것은 무엇입니까? – Rob013