0

ユーザーが複数の連絡先を選択できる連絡先のリストを作成しています。現在、Androidレイアウトでは、単一のテキストビューとチェックボックスを備えた複数選択のみが提供されています。私がやりたいのは、名前と番号、およびチェックボックス(2つのテキストビューとチェックボックス)を用意することです。これをカスタムレイアウトで実装し、ユーザーがリストをクリックしても、チェックボックスがオンになりません。チェックボックスをリストビューにバインドしようとしましたが、機能しませんでした。どんな助けでも大歓迎です。

4

2 に答える 2

0
private class EfficientAdapter extends BaseAdapter implements ListView.OnScrollListener       
{


    private LayoutInflater mInflater;

     public EfficientAdapter(Context context) {
         mInflater = LayoutInflater.from(context);  

     }

     public int getCount() {            
         return c.getCount();
     }

     public Object getItem(int position) {           

         return position;
     }

     public long getItemId(int position) {
         return position;
     }  

     public View getView(int position, View convertView, ViewGroup parent) {

         ViewHolder holder;

         if (convertView == null) {

             convertView = mInflater.inflate(R.layout.customcontactlist, null);              
             holder = new ViewHolder();               
             holder.txtName = (CheckedTextView) convertView.findViewById(R.id.TextView01);
             holder.txtNumber = (TextView) convertView.findViewById(R.id.TextView00);                
             convertView.setTag(holder);    

         } else {
             holder = (ViewHolder) convertView.getTag();
         }


         if (hashtable.contains(position)) {
             holder.txtName.setChecked(true);
         }else{
             holder.txtName.setChecked(false);
         }
         return convertView;
     }

      class ViewHolder {
         CheckedTextView txtName;
         TextView txtNumber;         
       }

        public void onScroll(AbsListView view, int firstVisibleItem,
                int visibleItemCount, int totalItemCount) {
        }

        public void onScrollStateChanged(AbsListView view, int scrollState) {

        }                   
     }

と活動中

l1.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {          

            EfficientAdapter.ViewHolder holder;
            holder = (EfficientAdapter.ViewHolder) arg1.getTag();


            if(holder.txtName.isChecked()){
                holder.txtName.setChecked(false);
            }else{
                holder.txtName.setChecked(true);
            }                               
        }               
    });     
于 2010-10-15T12:24:42.473 に答える
0

私は同様のスタックオーバーフローの質問でこの種の問題を解決するための一般的な方法を見つけました(カスタムビューを備えた複数選択リスト?):

http://www.marvinlabs.com/2010/10/custom-listview-ability-check-items/

于 2011-02-18T15:05:02.330 に答える