0

ArrayList<String>すでにインデックスキャプチャがあり、とから削除する必要があるボタンを作成しようとしていますArrayList<Integer>。整数リストはインデックスを適切に削除しますが、文字列配列は削除しません。以下のコード:

Globals:
ArrayList<String> QandItem = new ArrayList<String>();
ArrayList<Integer> Prices = new ArrayList<Integer>();
ArrayAdapter<String> left;
ArrayAdapter<Integer> right;

これらはセットアップされ、oncreateメソッドに入力されます。デバイスで表示すると出力が表示されるため、正しく機能することがわかります。

RemoveItem.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        // TODO
        if(i >= 0){
            QandItem.remove(i);
            Prices.remove(i);
            left.notifyDataSetChanged();
            right.notifyDataSetChanged();
            ItemList.setAdapter(left);
            PriceList.setAdapter(right);
        }
    }
});

i削除しようとしているインデックスはどこにありますか。

4

2 に答える 2

4

i は であるため、位置 i の要素ではなく、Integerオブジェクトを削除しようとしています。代わりにi使用してみてください。ArrayList.remove(int index)ArrayList.remove(Object o)i.intValue()の違いを参照してください。

于 2012-06-30T16:07:50.470 に答える
1

Keppil が尋ねたように、i がIntegerプリミティブではなく場合、保持していないオブジェクトを削除しようとします。これを試して:intQandItem.remove(i)

QandItem.remove(i.intValue())
于 2012-06-30T16:09:09.973 に答える