2013-08-04 43 views
3

我搜索如何解决这个问题有很多,但我没有得到任何结果。唯一的帮助,我需要的是,请看看这个问题上stackoverflow问题和答案;如何正确地调用setListAdapter

这里是this链接的问题:

;

ArrayAdapter<String> fileList = 
      new ArrayAdapter<String>(this, R.layout.row, item); 
setListAdapter(fileList); 
“我的活动不会延长ListActivity所以这行引发错误setListAdapter(的fileList)它应该填充列表视图...。”

了这个问题的答案是:

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

现在这里是我的代码:

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

    setListAdapter(adapter); 

} 

考虑到Q/A,可能有人请解释究竟如何我把它写在了正确的道路。任何帮助将非常感激。

+0

什么错误 – Raghunandan

+0

我得到setListAdapter 方法setListAdapter(ArrayAdapter )错误是不确定的,因为我推荐的类型ReminderListActivity –

+0

创建方法setListAdapter(ArrayAdapter ) 我做到了,因为它应该在程序不能正常工作。我如何正确解决这个错误? –

回答

14

如链接问题,在这个问题上的意见解释说,它是这样的:

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和对访问和操作它的一些方便的方法。然而,没有什么能够阻止你不必在一个非ListActivityActivity一个ListView,你只失去了方便的方法,将不得不自己写一些更多的代码,类似上面。

+0

这解决了我的问题。感谢您的帮助。 –

0

setListAdapter是不确定的,因为ReminderListActivity不会扩展ListActivity。所以为了解决这个问题,你需要扩展ListActivity。

+0

所以我问,我该怎么做,考虑我的代码? –

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); 
    } 
} 
1

我们可以做的ListView在AppCompatActivity

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);