我失去了整整一天试图找出如何使这项工作。 我成功地设置了一个自定义适配器和我的ListView
。 问题是,我得到了我单击的项目的正确位置,但项目始终是列表中的最后一个。
更重要的是,我在另一个线程中调用所有这些来执行PostCall。setOnClickListener返回正确的位置,但错误的项目
我尝试了下面的其他例子,当然也有官方开发者资源,但我无法弄清楚我做错了什么。
protected void onPostExecute(String result) {
try {
ListView serviceList = (ListView)findViewById(android.R.id.list);
String[] menu = result.split("_");
ListaMenuActivity adapter = new ListaMenuActivity(ListaCibo.this, menu);
serviceList.setAdapter(adapter);
serviceList.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id)
{
Toast.makeText(ListaCibo.this, String.valueOf(position) + parent.getAdapter().getItem(position), Toast.LENGTH_SHORT).show();
}
}catch (Exception e){
e.printStackTrace();
Toast.makeText(getApplicationContext(), R.string.error_string, Toast.LENGTH_LONG).show();
}
}
我也尝试使用parent.getItemAtPosition()
,也使用视图,总是相同的结果。
EDIT 这是我的适配器 公共ListaMenuActivity(Activity上下文,字符串[] ITEMNAME){ 超级(上下文,R.layout.menu_custom,ITEMNAME)的代码;
this.context=context;
this.itemname=itemname;
}
public View getView(int position, View view, ViewGroup parent) {
LayoutInflater inflater=context.getLayoutInflater();
View rowView=inflater.inflate(R.layout.menu_custom, null,true);
TextView txtTitle = (TextView) rowView.findViewById(R.id.item);
TextView extratxt = (TextView) rowView.findViewById(R.id.ingredienti);
ImageView image = (ImageView) rowView.findViewById(R.id.vegan);
try{
if(itemname[position]!="Medium Text") {
Log.e("basd", itemname[position]);
String [] elems = itemname[position].split(", ");
txtTitle.setText(elems[0] + ", " + elems[2]);
extratxt.setText(elems[1].replace("-", ", "));
if(!elems[3].equals("1")) {
Bitmap icon = BitmapFactory.decodeResource(context.getResources(), R.drawable.leaf);
vegan.setImageBitmap(icon);
}
desc_piatto = elems[4];
nome_foto = elems[5];
nomepiatto = elems[0];
}
} catch (Exception e){e.printStackTrace();}
return rowView;
}
@Override
public String getItem(int position) {
return nomepiatto + "," +nome_foto + "," + desc_piatto;
}
秀你的完整代码。 –
发布您的适配器。 – FWeigl
添加了适配器的代码 – Andrea