0

各行のTextView、ImageView、およびチェックボックスをロードするカスタムlistViewがあります。

私が使用する単一のアイテムを管理するために

list.setOnItemClickListener(new OnItemClickListener() {

            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                long x = MyClass.this.adapter.getItemId(position);
                            ......

            }
        });

これにより、シングルクリックされた行のID xを取得できます。これを使用して、単一の行に関連付けられたデータを取得できます。

今:

クリックしたすべての行のさまざまな位置インデックスを取得するにはどうすればよいですか?

私のListAdapterは

public class MyAdapter extends BaseAdapter{
    private Activity activity;
    private String[] dataCar;
    private String[] dataImm;

    private static LayoutInflater inflater=null;
    public TitleLoader titleLoader;
    public ImageLoader imageLoader; 
    public TextLoader textLoader;

    public MyAdapter(Activity a, String[] dCar, String[] dImm) {
        activity = a;
        dataCar=dCar;
        dataImm=dImm;
        inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        titleLoader=new TitleLoader(activity.getApplicationContext());
        imageLoader=new ImageLoader(activity.getApplicationContext());
    }

    public int getCount() {
        return dataImm.length;
    }

    public Object getItem(int position) {
        return position;
    }

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

    public View getView(int position, View convertView, ViewGroup parent) {
        View vi=convertView;
        if(convertView==null)
            vi = inflater.inflate(R.layout.elemento_lista_car, null);

        TextView car=(TextView)vi.findViewById(R.id.car);
        ImageView image=(ImageView)vi.findViewById(R.id.image);
        CheckBox cb=(CheckBox)vi.findViewById(R.id.checkBox);
        titleLoader.DisplayTitle(dataCar[position], car);
        imageLoader.DisplayImage(dataImm[position], image);

        return vi;
    }

}
4

2 に答える 2

0

私はあなたが使うべきだと思いますonListItemClick 私はあなたに例を挙げています

public void onListItemClick(ListView parent,View v,int position,long id){
    try{
        TextView t4=(TextView)v.findViewById(R.id.Name);
        TextView t5=(TextView)v.findViewById(R.id.Desc);


        if(t4!=null){
            EEActionListBean mSelected; // bean ur set get class
            int idx=position;//
            mSelected=m_adapter.getItem(idx); // this will give you position clicked

            String getvalueoflist=mSelected.getID();

                Intent intent=new Intent(this,EEActionListDetail.class);
                intent.putExtra("sID",ActionID);
                startActivity(intent);
        }
    }
    catch(Exception e){
        //MsgBox(this,e.toString());
    }
}
于 2012-09-29T07:49:23.040 に答える
0

問題を修正するためにLuksprogによって提案されたように、私はブール値の配列を使用しました。さまざまなエントリをクリックすると、それぞれの位置がtrueに設定されました。この配列でtrue要素のインデックスを使用すると、リストのチェックされたすべての行にアクセスできます

list.setOnItemClickListener(new OnItemClickListener() {

            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                long x = MezzoStampa.this.adapterListaTestate.getItemId(position);
                CheckBox cb=(CheckBox)view.findViewById(R.id.checkBox);
                cb.setChecked(true);
                if(cb.isChecked())
                    checked[(int)x]=true;

            }
        });
于 2012-09-30T00:38:08.817 に答える