昨天在論壇裏看到一個人問了如題這個問題,剛好以前我也遇到過這個問題,仔細想了一下,大概有兩種解決的方法分享給大家。
思路一 就是在getView的方法裏怎麼把參數position的值傳給你所需要的方法體裏。比如說適配器裏放的是TextView和button,現在想單擊button的
時候,用Toast給動態顯示出來。那隻要在getView裏找到button後,然後給button註冊一個自己自定義的適配器,把position當做參數送進去,就OK了。
public class MyOrder_ListViewAdapter extends SimpleAdapter { private Context mcontext; private LayoutInflater mInflater; public List<HashMap<String, Object>> list; private int layoutID; private String flag[]; private int ItemIDs[]; private List<Order> orderlists; Button mymenu_add_button; Button mymenu_delete_button; private Handler handler; public MyOrder_ListViewAdapter(Context context, List<? extends Map<String, ?>> list2, int resource, String[] from, int[] to, List<Order> orderlists, Handler handler) { super(context, list2, resource, from, to); mInflater = LayoutInflater.from(context); list = (List<HashMap<String, Object>>) list2; layoutID = resource; flag = from; ItemIDs = to; mcontext = context; this.orderlists = orderlists; this.handler=handler; // TODO Auto-generated constructor stub } public int getCount() { // TODO Auto-generated method stub return list.size(); } public Object getItem(int arg0) { // TODO Auto-generated method stub return list.get(arg0); } public long getItemId(int arg0) { // TODO Auto-generated method stub return arg0; } public View getView(int position, View convertView, ViewGroup parent) { convertView = mInflater.inflate(R.layout.mymenu_list_item, null); mymenu_add_button= (Button) convertView.findViewById(R.id.mymenu_add_btn); mymenu_add_button.setOnClickListener(new myButtonListener(position)); return convertView; } class myButtonListener implements OnClickListener { private int position; GridViewButtonListener(int pos) { position = pos; } public void onClick(View v) { String dishnamegot = (String) ((HashMap<String, Object>) getItem(position)) .get("TextViewd的key名"); } } }