5

我已经搜索了很多如何解决这个问题,但我没有得到任何结果。我需要的唯一帮助是,请查看在 stackoverflow 和答案中提出的这个问题;

这是来自链接的问题:

“我的活动没有扩展 ListActivity,所以这一行会引发错误。setListAdapter(fileList); 它应该填充一个列表视图......”

    ArrayAdapter<String> fileList =
            new ArrayAdapter<String>(this, R.layout.row, item);
setListAdapter(fileList);

这个问题的答案是:

获取您的ListView使用参考findViewById(int)。然后使用您的适配器作为参数调用该ListView.setAdapter(ListAdapter)引用上的方法。

现在这是我的代码:

ArrayAdapter<String> adapter =
     new ArrayAdapter<String>(this, R.layout.reminder_row, R.id.text1, items);

    setListAdapter(adapter); 

}

考虑到问答,有人可以解释一下我究竟是如何以正确的方式编写它的。任何帮助将不胜感激。

4

4 回答 4

18

正如链接问题和这个问题的评论中所解释的那样,它是这样的:

ArrayAdapter<String> adapter =new ArrayAdapter<String>(this, R.layout.reminder_row, R.id.text1, items);
ListView lv = (ListView)findViewById(R.id.your_listview_id);
lv.setAdapter(adapter);

ListActivity是一个专门Activity的,它承载 aListView并有一些方便的方法来访问和操作它。但是,没有什么可以阻止您ListView使用非ListActivity Activity,您只是失去了方便的方法,并且必须自己编写更多代码,如上所示。

于 2013-08-05T07:07:26.483 回答
2

laalto是对的,但您也可以在当前活动中扩展 ListActivity。

public class YourListActivityClass extends ListActivity {
    private ArrayAdapter<String> adapter;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        adapter = new ArrayAdapter<String>(this, R.layout.reminder_row, R.id.text1, items);
        setListAdapter(adapter); 
    }
}
于 2015-01-02T05:54:59.967 回答
2

我们可以在 AppCompatActivity 中做 listview

String[] one = {"dsk", "jskj", "ddd", "dld"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_row, R.id.list_row_name, one);
ListView listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(adapter);
于 2016-07-16T13:04:18.507 回答
1

setListAdapter 未定义,因为 ReminderListActivity 没有扩展 ListActivity。所以要解决这个问题,你需要扩展 ListActivity。

于 2013-08-04T18:00:55.877 回答