Activity1に(カスタム)リストビューがあります。行をクリックすると、別の(カスタム)リストビューでActivity2が開きます。両方のリストビューの行には、imageview、checkbox、textviewの2つのオブジェクトがあります。
アクティビティ2ですべてのチェックボックスをオンにして、電話機の[戻る]ボタンをクリックすると、リストビューの各行のチェックボックスがオンになっているはずです。ただし、[戻る]ボタンをクリックしても、何も起こりません([ログキャット]、[新しい行がありません]、[ログがありません]、[何もありません]
私はBACKボタンを上書きすると思ったので、クリックするとActivity1が開きます。Androidオーバーライド戻るボタン
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Intent intentstart = new Intent(Activity2.this, Activity1.class);
startActivity(intentstart);
return true;
}
return super.onKeyDown(keyCode, event);
}
これはうまくいきますが、私は嫌な思いをしています。これは良い解決策ですか?より良い解決策はありますか? これはBACK btnの通常の動作を殺すためです。
通常の動作:
- Activity1が開きます。私は行をクリックします - >アクティビティ2が開きます。私は戻る - > Activity1を見る。私は行をクリックします - > Activity2が開きます。数分プレイした後、私はActivity1にいます。私はクリックして、私は自分のアプリのオープンスクリーンにいます。
新しい動作
- Activity1が開きます。私は行をクリックします - >アクティビティ2が開きます。私は戻る - > Activity1を見る。私は行をクリックします - >アクティビティ2が開きます。数分プレイした後、私はアクティビティ1にいます。クリックするとアクティビティ2が開きます。その後、もう一度 - >アクティビティ1が開きます。その後、もう一度 - > Activity2が開きます。これまでに開いたすべてのアクティビティをロールバックするまで続きます。
ありがとうございます!作業とその説明も明確です! – erdomester
私はsqliteとループを使ってチェックボックスの状態をチェックしています。あなたが書いたものはもっと簡単かもしれませんが、一度働いたら私のコードを変更したくありません:) – erdomester