這裏是一堆僞代碼:創建自己的適配器。這樣可以靈活地做各種事情,但對你來說很重要,它只顯示你的自定義類中的相關字段,並製作更復雜的列表視圖。一個體面的教程是在這裏:http://developerlife.com/tutorials/?p=327
你將不得不處理baseadapter的其他替代,但關鍵是分配singleItem.getString()
public class SingleItemAdapter extends BaseAdapter{
private ArrayList<SingleItem> m_items= new ArrayList<SingleItem>();
private Context mContext;
public SingleItemAdapter (Context c,ArrayList<SingleItem> items) {
mContext = c;
m_items= items;
}
.
.
.
@Override
public Object getItem(int arg0) {
return m_items.get(arg0);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.singleitemview, null);
}
SingleItem i=(SingleItem) getITem(position)
if(v!=null){
TextView tv=(TextView) v.findViewById(R.id.yourListItemView);
tv.setText(i.getStringValue());
}
}
}
的價值定義自定義適配器之後,你就可以將其分配給列表視圖並將偵聽器分配給OnItemSelectedListener。因爲這會返回位置,所以可以將它綁定到SingleItems的ArrayList中的位置。
.
.
.
SingleItemAdapter sia=new SingleItemAdapter(this,yourArray);
yourArrayList.setAdapter(sia);
yourArrayList.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View v, int position, long row) {
SingleItem si= yourArray.getItem(position);
//do something with si.getValue();
}
.
.
.
});
onCLickListener是用於選擇整個listview。要返回特定項目的項目,您應該使用OnItemSelectedListener – jkhouw1 2011-05-11 02:02:37
oi我喜歡downvotes ...我在getView()函數中使用1 onClickListener,在getView()函數中,我只需設置視圖的onClickListener,然後返回到適配器中的1個onClickListener()。這很好,因爲我能夠使用setTag()存儲所需的所有數據。() – snctln 2011-05-11 04:37:10