是否更改自定义listView Android onclick的内容?
我有自定义的listview,可以预览从服务器获取的数据。 现在我想更改listview中的itemclick数据。我想要预览的新数据也来自服务器。 这是我的BaseAdapter类是否更改自定义listView Android onclick的内容?,android,listview,Android,Listview,我有自定义的listview,可以预览从服务器获取的数据。 现在我想更改listview中的itemclick数据。我想要预览的新数据也来自服务器。 这是我的BaseAdapter类 class MyCustomAdapter extends BaseAdapter { Vector<String> data_text; int[] data_image; MyCustomAdapter() { data_text =
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);
}}
类MyCustomAdapter扩展了BaseAdapter{
矢量数据;
int[]数据\图像;
MyCustomAdapter()
{
数据_text=null;
数据\图像=空;
}
MyCustomAdapter(矢量文本,int[]图像)
{
数据\文本=文本;
数据\图像=图像;
}
public int getCount()
{
返回数据_text.size();
}
公共字符串getItem(int位置)
{
返回null;
}
公共长getItemId(int位置)
{
返回位置;
}
公共无效更新结果(矢量结果){
数据\文本=结果;
//触发列表更新
notifyDataSetChanged();
}
公共视图getView(int位置、视图转换视图、视图组父视图)
{
LayoutInflater充气机=getLayoutInflater();
查看行;
行=充气机。充气(R.layout.category\u list\u元素,父元素,false);
TextView TextView=(TextView)row.findViewById(R.id.TextView01);
ImageView ImageView=(ImageView)row.findViewById(R.id.ImageView01);
textview.setText(data_text.get(position.toString());
setImageResource(数据_图像[位置]);
返回(行);
}}
请提供解决方案
请注意,我想在listview的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);
}});
l1.setAdapter(新的MyCustomAdapter(appCat,image));
l1.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id)
{
View curr=parent.getChildAt((int)id);
TextView c=(TextView)curr.findViewById(R.id.TextView01);
字符串sel_item=c.getText().toString();
阿皮神(网址);
}});
API_GOD(URL)是接收到的服务器端数据。
现在告诉我如何更新列表。在getView()中写入
或者在OnClick中执行您的工作您只需将此适配器设置为您的视图
mCustomList.setAdapter(mMyCustomAdapter)
,然后单击侦听器:mCustomList.setonicmclicklistener(this)代码>您可以在参数中实现整个onclick,或者让您的类实现click listenerimplements OnItemClickListener
OnItemClickListener的优点是您将获得一个位置:
@覆盖
public void onItemClick(AdapterView arg0,View v,int pos,long arg3){}
因此您可以只更新列表中的该项,然后通知适配器
@Override
public void onItemClick(AdapterView<?> parent, View view,int position,long id)
{
TextView c = (TextView) view.findViewById(R.id.TextView01);
String sel_item = c.getText().toString();
API_GOD(URL);
}});
@覆盖
public void onItemClick(AdapterView父对象、视图、整型位置、长id)
{
TextView c=(TextView)view.findViewById(R.id.TextView01);
字符串sel_item=c.getText().toString();
阿皮神(网址);
}});
我已经添加了onclicklistener代码。。。请告诉我你还需要做什么。我不明白你说的话。添加onItemClickListener(非onClick)以便获得位置,然后在适配器中更新数组/列表和notifyDataChanged()。抱歉,我是说onItemClickListener()…我在问题中发布了上面的代码…请告诉我我做错了什么…更改了答案,您必须使用“视图”引用已单击的项目;然后你可以c.setText(“随便什么”)代码>API_GOD的发布代码(URL);方法。。完成API_GOD(URL)后需要调用notifydatasetchanged();
@Override
public void onItemClick(AdapterView<?> parent, View view,int position,long id)
{
TextView c = (TextView) view.findViewById(R.id.TextView01);
String sel_item = c.getText().toString();
API_GOD(URL);
}});