2つの単純なアクティビティがあります-Activity1:配列からのListView Activity2:Activity1でクリックされた行を編集するためのEditText
Activity2で値を編集してActivity1に戻ると、ListViewは新しい値をリロードしません。
Activity2から戻ったとき、またはActivity1を再開したとき、またはリストを更新する何かを実行したときに、ListViewを更新したい。
私のコード:
static ArrayAdapter<String> dataAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Loading the values to list array
String[][] fulllist = loadArrays();
String[] list = new String[fulllist.length];
for(int i = 0; i<fulllist.length; i++) {
list[i] = fulllist[i][1];
}
// --------------------------------
dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
list);
setListAdapter(dataAdapter);
}
@Override
public void onResume() {
super.onResume();
// Loading the values to list array
String[][] fulllist = loadArrays();
String[] list = new String[fulllist.length];
for(int i = 0; i<fulllist.length; i++) {
list[i] = fulllist[i][1];
}
// --------------------------------
dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
list);
dataAdapter.notifyDataSetChanged();
}
loadArrays()は、SharedPreferencesからStringArrayに変換する単なるメソッドです。Activity2は新しいデータをSharedPreferencesに保存し、Activity1が(新しいデータを使用して)読み取ることができます。「メインアクティビティ」(Activity1ではない)に戻ってからActivity1に戻ると、新しいデータが表示されますが、Activity2からすぐに戻ったときにこのデータが更新されるようにしたいと思います。
loadArrays()メソッド:pastebin.com/MHwNC0jK
よろしくお願いします!