我有自定义列表视图,我正在预览从服务器获取的数据。 现在我想在itemclick上更改listview中的数据。我想要预览的新数据也来自服务器。 这是我的BaseAdapter类
class MyCustomAdapter extends BaseAdapter {
Vector<String> data_text;
int[] data_image;
MyCustomAdapter()
{
data_text = null;
data_image = null;
}
MyCustomAdapter(Vector<String> text, int[] image)
{
data_text = text;
data_image = image;
}
public int getCount()
{
return data_text.size();
}
public String getItem(int position)
{
return null;
}
public long getItemId(int position)
{
return position;
}
public void updateResults( Vector<String> results) {
data_text= results;
//Triggers the list update
notifyDataSetChanged();
}
public View getView(int position, View convertView, ViewGroup parent)
{
LayoutInflater inflater = getLayoutInflater();
View row;
row = inflater.inflate(R.layout.category_list_element, parent, false);
TextView textview = (TextView) row.findViewById(R.id.TextView01);
ImageView imageview = (ImageView) row.findViewById(R.id.ImageView01);
textview.setText(data_text.get(position).toString());
imageview.setImageResource(data_image[position]);
return (row);
}}
请提供解决方案。
请注意我想在列表视图的onclick上预览相同活动的数据。
这是我的onclick l1是listview
l1.setAdapter(new MyCustomAdapter(appCat, image));
l1.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int position,long id)
{
View curr = parent.getChildAt((int) id);
TextView c = (TextView)curr.findViewById(R.id.TextView01);
String sel_item = c.getText().toString();
API_GOD(URL);
}});
API_GOD(URL)是接收的服务器端数据。 现在告诉我如何更新列表。
答案 0 :(得分:0)
写入getView()
textview.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
updateResults(results);
});
或者在OnClick中进行工作
答案 1 :(得分:0)
您只需将此适配器设置为您的视图mCustomList.setAdapter(mMyCustomAdapter)
,然后点击监听器:mCustomList.setOnItemClickListener(this);
您可以在参数内部实现整个onclick,或者让您的类实现点击监听器{{1} onItemClickListener的优点是你将得到一个位置:
implements OnItemClickListener
因此,您只能更新列表中的该项,然后通知您的适配器。
@Override
public void onItemClick(AdapterView<?> arg0, View v, int pos, long arg3) { }