android之ListView重写item里面的事件

来源:互联网 发布:淘宝代刷自动返款系统 编辑:程序博客网 时间:2024/06/05 18:01
ListView是android里面用到很多的一个控件,这使用起来比较简单,又很实用。今天要讲的就是在Activity进而 重写Adapter的Button事件,废话不多说,就直接开始了1、创建一个适配器FindAdapter.javapublic class FindAdapter extends CursorAdapter implements OnClickListener{    private Context context;//this context    private OnItemFindClick onItemFindClick;    public FindAdapter(Cursor cursor){        super(                IM.im,                cursor,                FLAG_REGISTER_CONTENT_OBSERVER                );    }        public View getView(int pos, View convertView, ViewGroup parent) {        return renderUser(pos,convertView,parent);    }    // 将分割线放在上面,利于判断    public View renderUser(int pos,View view,ViewGroup parent){        FindHolder findHolder = null;        if(view == null){            view = LayoutInflater.from(parent.getContext())                    .inflate(R.layout.tt_item_find, parent,false);            findHolder = new FindHolder(view);            findHolder.btnRefuse.setOnClickListener(this);            findHolder.btnRefuse.setTag(pos);//这里很容易忘记            findHolder.btnAccept.setOnClickListener(this);            findHolder.btnAccept.setTag(pos);            view.setTag(findHolder);        }else{ //ant            findHolder = (FindHolder)view.getTag();        }        Cursor cursor = (Cursor)getItem(pos);        String accountStr = cursor.getString(cursor.getColumnIndex(ContactProvider.ContactColumns.ACCOUNT));        String nameStr = cursor.getString(cursor.getColumnIndex(ContactProvider.ContactColumns.NAME));        findHolder.tvAccount.setText(accountStr+"");         findHolder.tvName.setText(nameStr);         findHolder.ivcAvatar.setImageDrawable(IM.getAvatar(accountStr));          return view;    }    public void setOnItemFindClick(OnItemFindClick onItemFindClick){        this.onItemFindClick = onItemFindClick;    }        class FindHolder{        TextView tvAccount;        TextView tvName;        ImageViewCircle ivcAvatar;        Button btnRefuse;        Button btnAccept;                public FindHolder(View v){            tvAccount = (TextView)v.findViewById(R.id.tt_item_find_account);            tvName = (TextView)v.findViewById(R.id.tt_item_find_name);            ivcAvatar = (ImageViewCircle)v.findViewById(R.id.tt_item_find_icon);            btnRefuse = (Button)v.findViewById(R.id.tt_item_find_refuse);            btnAccept = (Button)v.findViewById(R.id.tt_item_find_accept);        }    }        public interface OnItemFindClick{         public void onAcceptClick(View v);         public void onRefuseClick(View v);    }        public void onClick(View v) {        switch(v.getId()){        case R.id.tt_item_find_accept://答应请求            onItemFindClick.onAcceptClick(v);            break;        case R.id.tt_item_find_refuse://拒绝请求            onItemFindClick.onRefuseClick(v);            break;        }    }    public void bindView(View arg0, Context arg1, Cursor arg2) {}    public View newView(Context arg0, Cursor arg1, ViewGroup arg2) {        return null;    }}2.当然需要一个布局哦!这里是我的布局tt_item_find.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:gravity="center_vertical" >    <com.chat.ui.widget.ImageViewCircle        android:id="@+id/tt_item_find_icon"        android:layout_width="45dp"        android:layout_height="45dp"        android:layout_marginLeft="10dp"        android:scaleType="centerCrop"        android:src="@drawable/tt_login_logo" />    <LinearLayout        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:orientation="vertical"        android:layout_marginLeft="10dp" >         <TextView            android:id="@+id/tt_item_find_name"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:textColor="@color/contact_realname_color"            android:textSize="17sp" />                 <TextView            android:id="@+id/tt_item_find_account"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:textColor="@color/contact_name_color"            android:textSize="12sp" />           </LinearLayout>    <LinearLayout        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:gravity="right"        android:orientation="horizontal"        android:layout_marginRight="10dp">        <Button            android:id="@+id/tt_item_find_accept"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginRight="10dp"            android:background="@drawable/tt_show_head_toast_bg"            android:text="@string/tt_item_find_accept"            android:textColor="@color/contact_realname_color"            android:paddingLeft="5dp"            android:paddingRight="5dp"/>                 <Button            android:id="@+id/tt_item_find_refuse"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:background="@drawable/tt_show_head_toast_bg"            android:text="@string/tt_item_find_refuse"            android:textColor="@color/contact_realname_color"            android:paddingLeft="5dp"            android:paddingRight="5dp"/>             </LinearLayout></LinearLayout>3.现在item开始了,就开始写Activity了public class FindActivity  extends Activity implements OnItemFindClick{        private ListView list;    private FindAdapter findAdapter;    private OnItemFindClick onItemFindClick;    private Cursor cursor;    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        initPatent();        init();        initData();    }    //cursor的数据自己去加载吧    private void initData(){}    private void init(){        context = this;        list = (ListView)contentView.findViewById(R.id.tt_activity_find_list);        onItemFindClick = this;        findAdapter = new FindAdapter(cursor);        findAdapter.setOnItemFindClick(onItemFindClick);        list.setAdapter(findAdapter);    }    //接受好友请求    public void onAcceptClick(View v) {        Log.e("findActivity-->","accept");        Log.e("find---》",""+ v.getTag());        final Cursor cursor = (Cursor)findAdapter.getItem((Integer) v.getTag());    }    //拒绝好友请求    public void onRefuseClick(View v) {        Log.e("findActivity-->","refuse");    }}4.activitty的布局自己去写吧!好了就完事了。 

0 0
原创粉丝点击