0
我在更改爲應用程序中的單獨活動時遇到了一些問題。 被叫活動添加到清單,所以這是沒有問題的(本來是太容易了,對不對?)創建活動時崩潰
這是我的主要活動,調用麻煩的活動:
public class MainMenu extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_menu);
}
public void onBtnClick(final View view) {
Intent intent = null;
switch (view.getId()) {
case R.id.btn_Start:
...//Working fine
break;
case R.id.btn_Options:
...//Also working
break;
case R.id.btn_Highscores:
intent = new Intent(this, ScoresMenu.class);
startActivity(intent);
break;
}
}
}
這是被叫活動:
public class ScoresMenu extends Activity {
String[] content;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scores_menu);
MyDB db = new MyDB(this);
ListView lv = (ListView) findViewById(R.id.lv_Scores);
content = db.getScores();
//This returns a String[20], currently with one entry at [0]
ArrayAdapter<String> scoreList = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, content);
lv.setAdapter(scoreList);
db.close();
}
}
這裏是要求getScores():
public String[] getScores() {
String[] scoreList = new String[20];
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(
TABLE_SCORES,
new String[] {KEY_ID, KEY_NAME, KEY_X, KEY_Y, KEY_A, KEY_TIME},
null, null, null, null,
KEY_TIME + " ASC",
null);
if (cursor.moveToFirst()) {
int i = 1;
do {
String score;
String name = cursor.getString(1);
int x = Integer.valueOf(cursor.getString(2));
int y = Integer.valueOf(cursor.getString(3));
int a = Integer.valueOf(cursor.getString(4));
String t = cursor.getString(5);
if(i < 10)
score = "0" + i;
else
score = "" + i; score = score + ") " + name + " (" + x + "x" + y + " Felder mit " + a + " Minen in " + t + ")";
scoreList[i] = score; i++;
} while (cursor.moveToNext());
}
cursor.close();
return scoreList;
}
}
隨着LogCat我追趕到目前爲止的問題,一切運行,直到過去「lv.setAdapter(scoreList);」。所以我想有一些錯誤,用得分列表填充的ListView ...
logcat的本身帶給我的以下內容:
03-30 19:04:12.289: W/dalvikvm(9014): threadid=1: thread exiting with uncaught exception (group=0x40d7d8a8)
03-30 19:04:15.221: E/AndroidRuntime(9014): FATAL EXCEPTION: main
03-30 19:04:15.221: E/AndroidRuntime(9014): java.lang.NullPointerException
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:394)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.widget.AbsListView.obtainView(AbsListView.java:2340)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.widget.ListView.makeAndAddView(ListView.java:1793)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.widget.ListView.fillDown(ListView.java:678)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.widget.ListView.fillFromTop(ListView.java:739)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.widget.ListView.layoutChildren(ListView.java:1638)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.widget.AbsListView.onLayout(AbsListView.java:2170)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.view.View.layout(View.java:13846)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.view.ViewGroup.layout(ViewGroup.java:4466)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.widget.LinearLayout.onLayout(LinearLayout.java:1420)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.view.View.layout(View.java:13846)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.view.ViewGroup.layout(ViewGroup.java:4466)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.view.View.layout(View.java:13846)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.view.ViewGroup.layout(ViewGroup.java:4466)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.widget.LinearLayout.onLayout(LinearLayout.java:1420)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.view.View.layout(View.java:13846)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.view.ViewGroup.layout(ViewGroup.java:4466)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.view.View.layout(View.java:13846)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.view.ViewGroup.layout(ViewGroup.java:4466)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2156)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1914)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1134)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4616)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:747)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.view.Choreographer.doCallbacks(Choreographer.java:567)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.view.Choreographer.doFrame(Choreographer.java:536)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:733)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.os.Handler.handleCallback(Handler.java:615)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.os.Handler.dispatchMessage(Handler.java:92)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.os.Looper.loop(Looper.java:153)
03-30 19:04:15.221: E/AndroidRuntime(9014): at android.app.ActivityThread.main(ActivityThread.java:4987)
03-30 19:04:15.221: E/AndroidRuntime(9014): at java.lang.reflect.Method.invokeNative(Native Method)
03-30 19:04:15.221: E/AndroidRuntime(9014): at java.lang.reflect.Method.invoke(Method.java:511)
03-30 19:04:15.221: E/AndroidRuntime(9014): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:821)
03-30 19:04:15.221: E/AndroidRuntime(9014): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)
03-30 19:04:15.221: E/AndroidRuntime(9014): at dalvik.system.NativeStart.main(Native Method)
03-30 19:04:15.257: I/Process(9014): Sending signal. PID: 9014 SIG: 9
任何人都可以在這裏找出問題?
你確定你的內容數組不爲空?打印出來。確保content = db.getScores();正在回報你的期望。 –
你打開關閉你的數據庫! –
告訴我們在你的mydb類中運行的代碼,這很可能是錯誤的來源。 – AndroidPenguin