2012-06-09 22 views
1

我一直在使用Google的教程来编写ListView,并且出于某种原因一直在发生错误。我已经确保创建外部存储权限,就像我在另一篇文章中看到的一样,但仍然有些事情正在发生。出于某种原因无法创建ListView?

主要活动:

public class FlashcardsActivity extends ListActivity { 
private ListView mainList; 
private final String[] listOptions = {"Test!","New Set", "Edit Existing"}; 
/** Called when the activity is first created. */ 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_row,listOptions)); 

mainList=(ListView)findViewById(R.id.mainList); 
mainList.setTextFilterEnabled(true); 

mainList.setOnItemClickListener(new OnItemClickListener(){ 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     Toast.makeText(getApplicationContext(), ((TextView)view).getText(),Toast.LENGTH_SHORT).show(); 
    } 
}); 
} 
} 

的logcat:

06-09 21:29:32.239: D/AndroidRuntime(221): Shutting down VM 
06-09 21:29:32.239: W/dalvikvm(221): threadid=3: thread exiting with uncaught exception (group=0x4001b188) 
06-09 21:29:32.250: E/AndroidRuntime(221): Uncaught handler: thread main exiting due to uncaught exception 
06-09 21:29:32.259: E/AndroidRuntime(221): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.aft.flashcards/com.aft.flashcards.FlashcardsActivity}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list' 
06-09 21:29:32.259: E/AndroidRuntime(221): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496) 
06-09 21:29:32.259: E/AndroidRuntime(221): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 
06-09 21:29:32.259: E/AndroidRuntime(221): at android.app.ActivityThread.access$2200(ActivityThread.java:119) 
06-09 21:29:32.259: E/AndroidRuntime(221): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 
06-09 21:29:32.259: E/AndroidRuntime(221): at android.os.Handler.dispatchMessage(Handler.java:99) 
06-09 21:29:32.259: E/AndroidRuntime(221): at android.os.Looper.loop(Looper.java:123) 
06-09 21:29:32.259: E/AndroidRuntime(221): at android.app.ActivityThread.main(ActivityThread.java:4363) 
06-09 21:29:32.259: E/AndroidRuntime(221): at java.lang.reflect.Method.invokeNative(Native Method) 
06-09 21:29:32.259: E/AndroidRuntime(221): at java.lang.reflect.Method.invoke(Method.java:521) 
06-09 21:29:32.259: E/AndroidRuntime(221): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
06-09 21:29:32.259: E/AndroidRuntime(221): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
06-09 21:29:32.259: E/AndroidRuntime(221): at dalvik.system.NativeStart.main(Native Method) 
06-09 21:29:32.259: E/AndroidRuntime(221): Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list' 
06-09 21:29:32.259: E/AndroidRuntime(221): at android.app.ListActivity.onContentChanged(ListActivity.java:236) 
06-09 21:29:32.259: E/AndroidRuntime(221): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:201) 
06-09 21:29:32.259: E/AndroidRuntime(221): at android.app.Activity.setContentView(Activity.java:1622) 
06-09 21:29:32.259: E/AndroidRuntime(221): at com.aft.flashcards.FlashcardsActivity.onCreate(FlashcardsActivity.java:19) 
06-09 21:29:32.259: E/AndroidRuntime(221): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
06-09 21:29:32.259: E/AndroidRuntime(221): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) 
06-09 21:29:32.259: E/AndroidRuntime(221): ... 11 more 
06-09 21:29:32.290: I/dalvikvm(221): threadid=7: reacting to signal 3 
06-09 21:29:32.290: E/dalvikvm(221): Unable to open stack trace file '/data/anr/traces.txt': Permission denied 

main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 

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

</LinearLayout> 

有谁知道问题是什么?

+0

如果您的代码格式正确且缩进,StackOverflow用户更有可能***回答您的问题。我强烈建议您在下次发布之前尽一点努力来正确格式化/缩进它。 :) –

+0

使用“4空格”而不是缩进。 StackOverflow将不会在您的答案中识别缩进。 :) –

回答

1

错误日志是很清楚的:

06-09 21:29:32.259:E/AndroidRuntime(221):了java.lang.RuntimeException:通过导致您的内容必须有一个ListView的ID属性为“android.R.id.list”

你在你的主要布局需要android:id="@android:id/list"一个ListView

+0

我改变ListView id列表,但由于某种原因,我仍然得到相同的错误。我发布了XML,以便您可以查看。 – aftrumpet

+0

@ user1446713:慢慢来看看我的答案与你的布局XML有什么不同。 –

+0

这似乎工作。谢谢! – aftrumpet

相关问题