私のコードでは、リストビューリストビューの行を削除すると変更されません。adapter.notifyDataSetChange()を使用しますが、これは私のコードではありません。notifyDataSetChangedは私のアクティビティでは動作しません
CustomList adapter;
Integer[] imageId;
public String[] _Data2;
public int positionAll;
ArrayList<ArrayList<String>> _Data = new ArrayList<ArrayList<String>>();
DataBase data = new DataBase(Show_Code.this, "MELK_TBL");
try {
data.open();
_Data = data.GetData();
imageId = new Integer[_Data.size()];
_Data2 = new String[_Data.size()];
for (int i = 0; i < _Data.size(); i++) {
imageId[i] = R.drawable.municipal;
_Data2[i] = _Data.get(i).get(1) + "_" + _Data.get(i).get(2) + "_" + _Data.get(i).get(3) + "_" + _Data.get(i).get(4) + "_" + _Data.get(i).get(5) + "_" + _Data.get(i).get(6) + "_0";
}
adapter = new CustomList(Show_Code.this, _Data2, imageId);
data.close();
} catch (Exception e) {
Toast.makeText(getApplication(), e.toString(), Toast.LENGTH_LONG).show();
}
list.setAdapter(adapter);
list.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
try {
data.open();
data.Delete(_Data.get(position).get(1), _Data.get(position).get(2), _Data.get(position).get(3), _Data.get(position).get(4), _Data.get(position).get(5), _Data.get(position).get(6), _Data.get(position).get(7));
data.close();
adapter.notifyDataSetChanged();
} catch (Exception e) {
Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();
}
return true;
}
});
私はそれのためにすべての時間をしません:(
このコードは機能しません。 – amardco
@amardco:あなたのケースでは、 '_Data2'が文字列配列である場合、アクティビティ.i.e。のString配列から削除された値を削除する必要があります。したがって、削除された値を '_Data2'から削除して、アダプタ文字列配列の値を新しい配列に置き換えて、アダプタに通知する必要があります。それはうまくいく、これは私がここで説明したものです。あなたのケースでは、アクティビティの値を削除しましたが、その値をアダプタに渡していないため、通知が機能しません。 – Jeevanandhan
それは仕事ですfinally.thank – amardco