我失去了整整一天試圖找出如何使這項工作。 我成功地設置了一個自定義適配器和我的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