1

カスタムアダプタを使用してArrayListを作成し、各アイテムの横に削除ボタンを表示しました。対応する削除ボタンをクリックして、リスト内の1つのアイテムを削除するにはどうすればよいですか?

getView()メソッドに次のコードを追加する必要があることを読みました。

btnDel.setTag(position);

次に、setTagがオブジェクトを返すため、位置をintに変換する必要があります。これをどのように管理しますか?

次に、getView()に次のようなonClickListener()関数を作成する必要があります。

btnDel.setOnClick....{
arrayList.remove(index);
adapter.notifyDataSetChanged();}

現在選択されているremove-Buttonの番号を取得するにはどうすればよいですか、またはremove()に何を入力する必要がありますか?

私はAndroidを初めて使用するので、コード例またはわかりやすいヒントを教えてください:)

ありがとう。

4

3 に答える 3

3

getViewメソッドにコードを配置し、位置をfinalにする必要があります...

     btnDelete.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {

                arrayList.remove(position);

                notifyDataSetChanged();

            }
        });
于 2012-08-20T14:01:32.903 に答える
1

アダプタークラス内のgetviewメソッドからコードを記述し、このコードをチェックするだけです。

  public View getView(int position, View convertView, ViewGroup parent) {
anyListener.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {

            yourArrayList.remove(position);
            notifyDataSetChanged();
        }
    });
    return convertView;

}

于 2012-11-12T09:35:55.610 に答える
0

これに似たものを作成する必要があります(少なくとも、これは私がこの機能を作成しようとしていた方法です):

public View getView(int position, View convertView, ViewGroup parent) {
    View vi = convertView;
    ViewHolder holder;
    if (convertView == null) {
        vi = inflater.inflate(R.layout.item, null);
        holder = new ViewHolder();
        holder.name = (Button) vi.findViewById(R.id.delete);
        vi.setTag(holder);
    } else
        holder = (ViewHolder) vi.getTag();
        holder.name.setText("Delete");

        holder.name.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {

            arrayList.remove(position);

            adapter.notifyDataSetChanged();

        }
    });

    return vi;
}

これに似たものがあなたのために働くはずです。それが役に立てば幸い!:)

于 2012-08-20T14:06:07.250 に答える