2013-04-29 105 views
0

我是一個初學者,正在寫一個listView的代碼,在OnclickListner上執行一個動作 ..但它給出錯誤「不幸停止」。我想在選擇不同的列表項目時執行不同的操作。即時通訊新的Android開發,所以即時通訊在線基本教程。Android應用程序 - 不幸停止

我有了這個開關/箱結構:

package com.list; 

import android.os.Bundle;  
import android.app.ListActivity; 
import android.util.Log; 
import android.view.Menu; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.CheckedTextView; 
import android.widget.ListView; 
import android.widget.Toast; 

public class MainActivity extends ListActivity { 

    final int Aatma = 0; //should be equal to the index in your array. 
    final int Special26 = 1; 
    final int Dabangg2 = 2; 

    String menu[] = {"Aatma","Special26","Dabangg2" }; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     // ListView l = (ListView)findViewById(R.id.list); 
     setListAdapter(new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,menu)); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 
    protected void onListItemClick(ListView l, View v, int position, long id) { 

     // super.onListItemClick(l, v, position, id); 



     CheckedTextView selectedItem = (CheckedTextView) v; 
     boolean isChecked = selectedItem.isChecked(); 
     Log.e("TAG","item clicked position = " + position + " isChecked = " + isChecked); 

     switch (position) { 
     case Aatma: 
      Toast.makeText(this, "AAtma !", Toast.LENGTH_LONG).show(); 

      break; 
     case Special26: 
      Toast.makeText(this, "Special26 !", Toast.LENGTH_LONG).show(); 

      break; 

     case Dabangg2: 
      Toast.makeText(this, "Dabangg 2 !", Toast.LENGTH_LONG).show(); 

      break; 
     default: 
      break; 
     } 

    } 

} 



Error Log- 
04-29 18:28:21.514: W/dalvikvm(782): threadid=1: thread exiting with uncaught exception (group=0x40a71930) 
04-29 18:28:21.544: E/AndroidRuntime(782): FATAL EXCEPTION: main 
04-29 18:28:21.544: E/AndroidRuntime(782): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.list/com.list.MainActivity}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list' 
04-29 18:28:21.544: E/AndroidRuntime(782): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 
04-29 18:28:21.544: E/AndroidRuntime(782): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
04-29 18:28:21.544: E/AndroidRuntime(782): at android.app.ActivityThread.access$600(ActivityThread.java:141) 
04-29 18:28:21.544: E/AndroidRuntime(782): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
04-29 18:28:21.544: E/AndroidRuntime(782): at android.os.Handler.dispatchMessage(Handler.java:99) 
04-29 18:28:21.544: E/AndroidRuntime(782): at android.os.Looper.loop(Looper.java:137) 
04-29 18:28:21.544: E/AndroidRuntime(782): at android.app.ActivityThread.main(ActivityThread.java:5041) 
04-29 18:28:21.544: E/AndroidRuntime(782): at java.lang.reflect.Method.invokeNative(Native Method) 
04-29 18:28:21.544: E/AndroidRuntime(782): at java.lang.reflect.Method.invoke(Method.java:511) 
04-29 18:28:21.544: E/AndroidRuntime(782): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
04-29 18:28:21.544: E/AndroidRuntime(782): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
04-29 18:28:21.544: E/AndroidRuntime(782): at dalvik.system.NativeStart.main(Native Method) 
04-29 18:28:21.544: E/AndroidRuntime(782): Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list' 
04-29 18:28:21.544: E/AndroidRuntime(782): at android.app.ListActivity.onContentChanged(ListActivity.java:243) 
04-29 18:28:21.544: E/AndroidRuntime(782): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:273) 
04-29 18:28:21.544: E/AndroidRuntime(782): at android.app.Activity.setContentView(Activity.java:1881) 
04-29 18:28:21.544: E/AndroidRuntime(782): at com.list.MainActivity.onCreate(MainActivity.java:25) 
04-29 18:28:21.544: E/AndroidRuntime(782): at android.app.Activity.performCreate(Activity.java:5104) 
04-29 18:28:21.544: E/AndroidRuntime(782): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
04-29 18:28:21.544: E/AndroidRuntime(782): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 
04-29 18:28:21.544: E/AndroidRuntime(782): ... 11 more 
+0

讀取異常消息被證明是非常有用的:「你的內容必須有一個ListView,它的id屬性是'android.R.id.list'」 – CodeZombie 2013-04-29 18:36:08

+0

這個問題很明顯'引起:java.lang.RuntimeException:你的內容必須有一個ListView,其id屬性是'android.R.id.list'' Google上的一分鐘會找到你的答案。 – Simon 2013-04-29 18:36:37

+0

[RuntimeException:您的內容必須具有ID屬性爲'android.R.id.list'的ListView](http://stackoverflow.com/questions/3040374/runtimeexception-your-content-must-have- a-listview-which-id-attribute-is-andro) – Simon 2013-04-29 18:37:14

回答

0

您的佈局需要包含ID爲android.R.id.list列表視圖,像這樣:

<ListView 
    android:id="@android:id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

重要的是ID是@android:id/list,如http://developer.android.com/reference/android/app/ListActivity.html中所述(請參閱「屏幕布局」一節)。

+0

thanx爲你寶貴的回覆... – chunky8666 2013-04-29 18:40:41

+0

但我可以有一個更正代碼..我已經添加ID到列表查看allready – chunky8666 2013-04-29 18:41:13

+0

@ + ID /列表不同於@android:ID /列表。 android:id定義id爲「identifier」的名稱空間,它必須是android,它指的是您通常在根xml標記中定義的名稱空間:xmlns:android =「http://schemas.android.com/apk/res/android「 – 2013-04-29 18:45:41

相關問題