2016-08-24 6 views
-1

スピンナーにプロンプ​​トテキストを表示するという目標を達成するための正しい方法はわかりません。このアプリケーションでは、スピナーがインテントを介して別のアクティビティにナビゲートし、ユーザーがスピナーでメインアクティビティに戻ると2つの方法があります。 1つはボタンとクリックイベントがあり、もう1つはデバイスの[戻る]ボタンをクリックします。私は、デバイスのBACKボタンを管理する方法からクリックイベント内のコードを呼び出すようにしようとしています 私は、デバイスからのクリックイベントを呼び出す方法がわからないBACKボタン方式別のメソッドからメソッドを呼び出すAndroid

@Override 
public void onBackPressed() { 
    Toast.makeText(getApplicationContext(),"Use BACK BUTTON\n\n"+"On the Screen",Toast.LENGTH_LONG).show(); 
    // I want to call goBack(View view) from here 
    // +++++++++++++++++++++++++++++++++++++++++++ 
} 

public void goBack(View view){ 
    Intent i = new Intent(PageTwo.this, MainActivity.class); 
    startActivity(i); 
} 

私はこのテントを使用する理由メインアクティビティに戻ります。

+0

これはあなたに問題が発生します。メインアクティビティの新しいインスタンスが開き、コールアクティビティは閉じられていないのでスタックに残ります。 – Ramit

+0

@Ramilスタックを閉じるにはどうすればメモリリークの原因になると思いますか?メソッドにスピンロードのリロードを入れ、それをリロードしてonBackPressedを使ってナビゲーションを戻すことはできますか? –

+0

呼び出しアクティビティを終了し、 onResume。問題が解決されました:) – Ramit

答えて

1

レイアウトXMLにonClickが設定されている可能性が最も高いのはgoBack(View)です。ビューを使用していないので、ちょうどnullを渡す:

@Override public void onBackPressed() { 
    goBack(null); 
} 
+0

Rummierそれはトリックでしたなぜ私はそれについて考えなかったのか分かりませんまだ7年生として学んでいます。これはドイツに住んでいるときにフランス語を習うようなものです –

+0

Rummierだから、スピナーをリロードするメインアクティビティでメソッドを作成しても、インテントまたはreLoad()メソッドの呼び出しをどこで行うのですか –

0

私はあなただけの別のアクティビティを開始した活動に戻りたい場合、私は、右のあなたを得るかどうかを知りません、あなただけ呼び出すことができます仕上げ(Activityクラスの)方法:

 @Override 
public void onBackPressed() { 
    finish(); 
} 

finish() reference

+0

finish()を呼び出すと、そのコンセプトを使用するとスピナーがリロードされず、ユーザーは最後のエクスペリエンスに戻ることができないことを理解していますスピナーからそれを選択することで、私の目標はスピナーをリロードすることでしたので、インテントを使用してスピナーに戻ってきました –

関連する問題