BaseAdapter里面处理单击事件 转载文章

在BaseAdapter里面处理单击事件

static final class MyAdapter extends BaseAdapter { 
 
    /** override other methods here */ 
 
    @Override 
    public View getView(final int position, View convertView, ViewGroup parent) { 
        ViewHolder holder; 
 
        if (convertView == null) { 
            // inflate the view for row from xml file 
 
            // keep a reference to each widget on the row. 
            // here I only care about the button 
            holder = new ViewHolder(); 
            holder.mButton = (Button)convertView.findViewById(R.id.button); 
            convertView.setTag(holder); 
        } else { 
            holder = (ViewHolder)convertView.getTag(); 
        } 
 
        // redefine the action for the button corresponding to the row 
        holder.mButton.setOnClickListener(new OnClickListener() { 
            @Override 
            public void onClick(View v) { 
                // do something depending on position 
                performSomeAction(position); 
                // mark data as changed 
                MyAdapter.this.notifyDatasetChanged(); 
            } 
        } 
    } 
    static final class ViewHolder { 
        // references to widgets 
        Button mButton; 
    } 
} 

  

posted @ 2011-08-15 11:50  水向东流  阅读(2942)  评论(0编辑  收藏  举报