我已经搜索过如何解决这个问题,但我没有得到任何结果。我需要的唯一帮助是,请看看stackoverflow和回答上提出的这个问题;
这是来自this链接的问题:
“我的活动没有扩展ListActivity所以这行会抛出一个错误.setListAdapter(fileList);它应该填充listview ...”
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);
}
考虑到Q / A,有人可以解释我是如何以正确的方式编写的。非常感谢任何帮助。
答案 0 :(得分:16)
如链接问题和本问题的评论中所述,它是这样的:
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
,它托管ListView
并且有一些方便的方法来访问和操作它。但是,没有什么可以阻止您在非ListView
ListActivity
中使用Activity
,您只是失去了便利方法,并且必须自己编写更多代码,如上所述。
答案 1 :(得分: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);
}
}
答案 2 :(得分: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);
答案 3 :(得分:0)
setListAdapter未定义,因为ReminderListActivity不扩展ListActivity。因此,要解决此问题,您需要扩展ListActivity。