我有一个带有AsyncTask的片段,我在其中解析Json。要将每个元素放在列表中,我使用SimpleAdapter
。在我的项目列表中,我有一个按钮。当然,如果我想点击按钮,我需要创建一个getView。好吧不行。这是AsyncTask中的SimpleAdapter
部分
ListAdapter adapter = new SimpleAdapter(getActivity(), list, R.layout.list_rom_item,
new String[] { TAG_NAME, TAG_SURNAME }, new int[] { R.id.name, R.id.surname});
现在,在那之后,我试着说:
@Override
public View getView (int position, View convertView, ViewGroup parent)
{
View v = super.getView(position, convertView, parent);
Button b=(Button)v.findViewById(R.id.mytask);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this,"save",Toast.LENGTH_SHORT).show();
}
});
return v;
}
我在@Override
中收到错误,例如:The annotation @Override is disallowed for this location
,当然还有getView()
语法错误。我不知道为什么。我还尝试清理项目,但没有。有没有其他解决方案?感谢。
答案 0 :(得分:1)
在实例化适配器时应该覆盖getView()方法。 在那之后,你将无法做到这一点。
尝试这种方式:
ListAdapter adapter = new SimpleAdapter(getActivity(), list, R.layout.list_rom_item,
new String[] { TAG_NAME, TAG_SURNAME }, new int[] { R.id.name, R.id.surname}) {
@Override
public View getView (int position, View convertView, ViewGroup parent) {
...
return v;
}
}