2

アクティビティ A に 3 つのアクティビティ (A、B、C) を持つ Android アプリを作成しました。textviewオートコンプリート テキスト ユーザーがボタンを押してデータを選択した後、データベースとボタンからデータをフェッチする 2 つのオートコンプリートがあり、表示される次のアクティビティに進みますlistview

問題は、デバイスの戻るボタンを押したときに、デバイスの戻るボタンを押したときにlistview選択したデータをオートテキストで表示するアクティビティ A を表示することです。

事前にご協力いただきありがとうございます

4

5 に答える 5

0

前のアクティビティでフィールドをクリアしようとしているため、listactivityの戻るボタンには何もありません。リストアクティビティの作成中に前のアクティビティを終了していないため、前のアクティビティは変更されません。したがって、リストから戻っている間は、以前と同じデータを言っています。@Daveが提案したように、これを行うには、oResumeメソッドまたはonPauseメソッドでクリアを実行できます。しかし問題がある。onResumeまたはonPauseでデータをクリアすると、ホームを押すなどの他の一時停止または再開の理由で、または他のアプリケーションなどでデータがクリアされます。したがって、2つのいずれかを実行できます。

オプション1:

リストアクティビティを開始するときに、前のアクティビティのデータをクリアします

また

オプション2:

startActivity呼び出しの代わりに、メソッドstartActiviyForResultをオーバーライドしますonActiviyResult。したがって、リストアクティビティからいつ戻っているかを検出できます。次に、データをクリアします。

于 2013-03-22T02:44:00.943 に答える
0

startActivityforResut を実装する必要があります。結果でこのアクティビティに戻ると、データをクリアできます

于 2016-02-12T07:20:03.230 に答える
0

戻るボタンを押すと、アクティビティ A が「再開」します。したがって、Activity A で "onResume" をオーバーライドします... onResume メソッドで、フィールドをクリアします。

于 2013-03-22T02:30:22.767 に答える
0

この問題に対処するには、単純に onBackPressed() メソッドをオーバーライドします。そこで、アクティビティをメモリに保持する論理的な説明がないため、アクティビティ スタックをクリアしてから、元のアクティビティに対して新たなインテントを開始します。ここにコードがあります。

@Override
public void onBackPressed() {

     Intent intent = new Intent(this, Activity_A.class);      //I suppose they are in same package

     intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
     startActivity(intent);

}

お役に立てば幸いです。

于 2013-03-22T03:15:26.317 に答える