0

私は自分の活動にスピナーを持っています。ユーザーがドロップダウンボタンをクリックしたときに、テキストと削除ボタンを表示する必要があります。

そこで、Custom Array Adapter を作成したところ、正しくレンダリングされました。しかし、削除ボタンをクリックすることしかできず、クリックイベントで削除ボタンに移動します。期待通りですが、テキストをクリックしてもアイテムを選択できなくなりました。削除ボタンのクリックを除いて、すべての行が無効になります。

4

1 に答える 1

1
//CUSTOM SPINNER ADAPTER
public class CardListAdapter extends ArrayAdapter<Card> {
private Context appContext = null;
private ArrayList<Card> items = null;

public CardListAdapter(Context context, int textViewResourceId,
        ArrayList<Card> items) {
    super(context, textViewResourceId, items);
    this.appContext = context;
    this.items = items;
}

@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    return getCustomView(position, convertView, parent);
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    View v = convertView;
    if (v == null) {
        LayoutInflater vi = (LayoutInflater) appContext
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        v = vi.inflate(R.layout.card_simple_list, null);
    }

    final Card o = items.get(position);
    if (o != null) {

        TextView name = (TextView) v.findViewById(R.id.card_Name);

        if (name != null) {
            name.setText(o.getName());
        }
    }
    return v;

}

public View getCustomView(int position, View convertView, ViewGroup parent) {
    View v = convertView;
    if (v == null) {
        LayoutInflater vi = (LayoutInflater) appContext
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        v = vi.inflate(R.layout.card_list, null);
    }

    final Card o = items.get(position);
    if (o != null) {

        TextView name = (TextView) v.findViewById(R.id.card_Name);

        ImageButton btnDelete = (ImageButton) v
                .findViewById(R.id.card_Delete);

        btnDelete.setOnClickListener(new OnClickListener() {

            public void onClick(View view) {
                items.remove(o);
                notifyDataSetChanged();
            }
        });

        if (name != null) {
            name.setText(o.getName());
        }
    }
    return v;
}

} // end custom adapter}
于 2012-08-08T14:51:05.360 に答える