简单的实现listView中item多个控件以及点击事件

来源:互联网 发布:vb caption 换行 编辑:程序博客网 时间:2024/06/04 01:08

本文出自:http://wang-peng1.iteye.com/blog/649529

public class ProductSearch extends ListActivity {private static class ProductSearchAdapter extends BaseAdapter {      private LayoutInflater mInflater;     private Bitmap mIcon1;     private Bitmap mIcon2;      public ProductSearchAdapter(Context context) {          mInflater = LayoutInflater.from(context);          // Icons bound to the rows.         mIcon1 = BitmapFactory.decodeResource(context.getResources(),                 R.drawable.icon48x48_1);         mIcon2 = BitmapFactory.decodeResource(context.getResources(),                 R.drawable.icon48x48_2);     }      @Override     public int getCount() {          return DATA.length;     }      @Override     public Object getItem(int position) {          return position;     }      @Override     public long getItemId(int position) {          return position;     }      @Override     public View getView(final int position, View convertView,             ViewGroup parent) {         ViewHolder holder;         Button btn=null;          if (convertView == null) {             convertView = mInflater.inflate(R.layout.productsearch, null);              // Creates a ViewHolder and store references to the two children             // views             // we want to bind data to.             holder = new ViewHolder();             holder.text = (TextView) convertView.findViewById(R.id.text);             holder.icon = (ImageView) convertView.findViewById(R.id.icon);             btn=(Button)convertView.findViewById(R.id.prdsrcbutton);             convertView.setTag(holder);         } else {             // Get the ViewHolder back to get fast access to the TextView             // and the ImageView.             holder = (ViewHolder) convertView.getTag();         }          // Bind the data efficiently with the holder.         holder.text.setText(DATA[position]);         holder.icon.setImageBitmap((position & 1) == 1 ? mIcon1 : mIcon2);          holder.icon.setOnClickListener(new View.OnClickListener() {              @Override             public void onClick(View v) {                 Log.i("image", " u clicked on icon Position" + position);              }         });         holder.text.setOnClickListener(new View.OnClickListener() {              @Override             public void onClick(View v) {                 Log.i("Text", " u clicked on text Position" + position);              }         });          btn.setOnClickListener(new View.OnClickListener() {              @Override             public void onClick(View v) {                 Log.i("Button","U clicked on button");              }         });           return convertView;     }      static class ViewHolder {         TextView text;         ImageView icon;     }      private static final String[] DATA = { "Abbaye de Belloc",             "Abbaye du Mont des Cats" };  }  ListView product_search_list; Button srch_btn; EditText srch_text;  @Override protected void onCreate(Bundle savedInstanceState) {      super.onCreate(savedInstanceState);     setListAdapter(new ProductSearchAdapter(this));     // setContentView(R.layout.productsearch);     // getListView().setEmptyView(findViewById(R.id.text));     // srch_text = (EditText)findViewById(R.id.prdsearchtb);     // srch_btn = (Button) findViewById(R.id.prdsearchtb);     // srch_btn.setOnClickListener(new View.OnClickListener() {     //           // @Override     // public void onClick(View v) {     // callProductSearchAdapter();     //     // }     // });  }  void callProductSearchAdapter() {     setListAdapter(new ProductSearchAdapter(this)); }  private void createDialog(String title, String text, final Intent i) {     if (i == null) {         AlertDialog ad = new AlertDialog.Builder(this).setIcon(                 R.drawable.alert_dialog_icon).setPositiveButton("Ok", null)                 .setTitle(title).setMessage(text).create();         ad.show();     } } }


原创粉丝点击