启动活动时出错

时间:2014-08-22 12:54:12

标签: android android-listview

我有一个由四个按钮组成的活动。当我点击其中一个时,我会去另一个活动。所有按钮都运行良好,但当我点击第四个按钮时,应用程序停止。必须启动的活动由ListView组成。以下是该活动的代码:

public class InformationActivity extends ListActivity {

String[] elements = {"About", "Rate"};

public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);

     setContentView(R.layout.information_layout); 
     ListView listview = (ListView)findViewById(R.id.optionslist);
     listview.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, elements));
 }

public void onListItemClick(ListView parent, View v, int position, long id) {

    if ("About".equals(elements[position]))
        {Intent i = new Intent(this, AboutActivity.class);
        startActivity(i);}
    else if ("Rate".equals(elements[position]))
        {Intent i = new Intent(this, FeedbackActivity.class);
        startActivity(i);}
    }

}

检查LogCat,我发现以下错误:

08-22 12:34:57.649: E/AndroidRuntime(1361): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.isa.gestordecurso/com.isa.gestordecurso.InformationActivity}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'

我不明白这个错误。 XML中ListView的id是optionslist,它在Activity中定义。

希望有一个解决方案:谢谢!

1 个答案:

答案 0 :(得分:1)

第四个活动是ListActivity,列表活动将列表视图的默认ID设为@android:id/list,这就是为什么说

Your content must have a ListView whose id attribute is 'android.R.id.list'

您应该使用以下ID作为列表视图 =&gt; @android:id/list

<ListView android:id="@android:id/list"
               android:layout_width="match_parent"
               android:layout_height="match_parent"
               android:background="#00FF00"
               android:layout_weight="1"
               android:drawSelectorOnTop="false"/>`

有关ListActivity的更多信息,请阅读开发人员Android here