我在填充自定义列表时遇到问题。当应用程序处于创建状态时,它会使用默认元素正确填充列表。但是,当我进入设置对话框时,我有一个无线电组,允许我选择将使用哪个数组来填充列表,但是我不能从对话框中调用populatelistview自定义类,因为没有'允许我使用"这个"作为输入,因为它在对话框中它并不接受它作为上下文。这是我的populatelistview类:
hPut
这是导致对话中出现问题的一行:
class populateListView extends ArrayAdapter <String>
{
Context context;
String [] times;
String [] runtimes;
populateListView(Context c,String [] tms, String [] rts)
{
super(c, R.layout.seizure_list2,R.id.firstLine,tms);
this.context=c;
this.runtimes=rts;
this.times = tms;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.seizure_list2,parent,false);
TextView runtime_text = (TextView) row.findViewById(R.id.secondLine);
TextView time_text = (TextView) row.findViewById(R.id.firstLine);
time_text.setText(times[position]);
runtime_text.setText(runtimes[position]);
return row;
}
}
最后,这是我与广播组的对话:
`public void dialog_filter(){
adapter = new populateListView(this, all_times_array, all_runtimes_array);
`
答案 0 :(得分:0)
ArrayAdapter要求第一个输入是Context
的实例。由于Dialog
未从Context
延伸,因此您无法使用this
实例化适配器。但是,您可以从对话框中调用getContext()
,然后传递它。
答案 1 :(得分:0)
更改用于在onclick方法中创建适配器的代码行,以便像这样
adapter = adapter = new populateListView(YourActivityName.this, all_times_array, all_runtimes_array);