アクティビティがあり、特定の条件で、ListViewを含むアクティビティに整数値を渡します。しかし、私はいくつかの問題に直面しています:
初期値は0であり、アクティビティが実行されて条件が満たされると、実際の値の代わりに別の0が渡されます。
ListViewは、メインアクティビティから実行されるたびにリセットされます。以前の実行の結果を保持したい(ユーザーがListViewアクティビティ自体のリセットボタンを押すまで)。
**編集3.以前は気づかなかった動作に気づきました。つまり、メインアクティビティからListViewアクティビティを開くたびに、別の0がListViewに追加されます。
関連するコードは次のとおりです-
ListViewを含むアクティビティに値を渡すアクティビティ:
if(condition) {
textview.setText("String1");
Intent intent = new Intent(this, ListViewActivity.class);
intent.putExtra("numCounter", numCounter);
}
ListViewを使用したアクティビティ:
ListView numListView;
ArrayAdapter<Integer> listAdapter;
static ArrayList<Integer> numArrayList = new ArrayList<Integer>();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_name);
Intent intent = getIntent();
int intentNum = intent.getIntExtra("numCounter", 0);
addNumArrayList(intentNum);
numListView = (ListView) findViewById(R.id.numberListView);
listAdapter = new ArrayAdapter<Integer>(this, R.layout.listview_row, numArrayList);
numListView.setAdapter(listAdapter);
}
// Keep ArrayList to size of 10, while keeping it sorted
// (displaying only the 10 lowest)
public static void addNumArrayList(int val) {
numArrayList.add(val);
Collections.sort(numArrayList);
if(numArrayList.size() > 10) {
for(int i = 10; i < numArrayList.size(); i++) {
numArrayList.remove(i);
}
}
}
基本的には、ListViewアクティビティ自体でリセットボタンが押された場合を除いて、他の1つまたは複数のアクティビティのみが変更できるようにしたいと思います(メインアクティビティからアクティビティを開くだけでは何も起こりません)。
どうすれば修正できますか?