0

カスタムアレイアダプタを使用したカスタムリストビューがあります。私の問題は、編集画像をクリックしているときに、編集テキストに関連するテキストが必要なことです。たくさん検索しましたが、解決策が見つかりません。

私のコードは次のとおりです。

public class SimpleAdapter1 extends ArrayAdapter<Data> implements OnClickListener {

private ArrayList<Data> items;
Context context;
TextView tv1;
ImageView edit;
ImageView delete;

public SimpleAdapter1(Context context, int textViewResourceId,
        List<Data> catDesc) {
    super(context, textViewResourceId, catDesc);
    this.items = (ArrayList<Data>) catDesc;
    this.context = context;     
    System.out.println(items);
}

@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
    View v = convertView;
    if (v == null) {
        LayoutInflater vi = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        v = vi.inflate(R.layout.masterlist, null);
    }
    Data dt = items.get(position);
    if (dt != null) {
        tv1 = (TextView) v.findViewById(R.id.mastext1);
        if (tv1 != null) {
            tv1.setText(dt.getDesc());
        }
    }
    });
    tv1.setOnClickListener(this);       
    edit = (ImageView) v.findViewById(R.id.editImage);
    delete = (ImageView) v.findViewById(R.id.deleteImage);
    edit.setOnClickListener(new OnClickListener() {

        public void onClick(View arg0) {

        }
    });
    delete.setOnClickListener(new OnClickListener() {

        public void onClick(View arg0) {
            Toast.makeText(context,
                    items.get(position).getDesc() + " delete",
                    Toast.LENGTH_SHORT).show();
        }
    });
    return v;
}

public void onClick(View v) {
    switch (v.getId()) {
    case R.id.mastext1:         
        break;  
    }

}
}

これは画像です

4

1 に答える 1

0

これをSampleAdapterに追加します。

private DeleteClickListener mDeleteClickListener;

public void setOnDeleteClickListener(DeleteClickListener deleteClickListener) {
    mDeleteClickListener = deleteClickListener;
}

public static interface DeleteClickListener {
    public void onDelete(int id);
}

そして、これをimplements DeleteClickListener呼び出すあなたの活動からmyAdapter.setOnDeleteClickListener(this);。そして今あなたの中でこれをgetView()行います:

 delete.setOnClickListener(new OnClickListener() {

    public void onClick(View arg0) {
        if(mDeleteClickListener!=null){
             mDeleteClickListener.onDelete(position);
        }
    }
});

PS:同じ手順が編集ボタンにも当てはまります。

于 2013-02-20T11:02:07.957 に答える