2016-03-24 4 views
2

ユーザーがボタンを複数回タップすると、同じアクティビティが複数回初期化されるAndroidアプリがあります。アクティビティが複数回初期化されないようにする方法

これを防ぐために、マニフェストファイルにandroid:launchMode="singleInstance"を追加しました。しかし今、アクティビティが自分自身を呼び出すとき、それは動作しません。

私も

Intent myintent = getIntent(); 
myintent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 

を試みたが、これはどちらか動作しませんでした。

ユーザーがボタンを複数回すばやくクリックしたときに複数のアクティビティが発生しないようにするにはどうすればよいでしょうか。ありがとう。

+0

try launchMode = "singleTop"編集:あなたはどういう意味ですか?また、同じアクティビティを自分自身で正しく呼び出すことができますか?そのアクティビティが自分自身から呼び出された場合に再作成されるようにしますか? – Wukash

+0

@ Wukash動作しませんでしたが、依然としてアクティビティは自分自身を呼び出すことができません。 – jason

+0

@ Wukash私がアクティビティをしているときに、ボタンを押して同じアクティビティを呼び出すと、それは機能しません。 – jason

答えて

1

「これは喜んでいる」と思われます。また、多くの場合、複数のオプションを同時にアクティブにするためにマルチタッチを使用することもできます。この問題を本当に解決する必要がある場合は、J Whitfield(element.setEnabled(false)またはelement.setClickable(false))またはonTouchを傍受するような無効化要素を調べることができます。

1

最初のクリックが検出された後にボタンを無効にすることができます。

Button button = theView.findViewById(R.id.button); 
     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if(v.isEnabled()){ 
        v.setEnabled(false); 
       } 
       //Call your new activity here 
       ...activity stuff... 
      } 
     }); 
+0

を呼び出さなければなりません。 – jason

+0

これを実装する方法を示すために私の質問を更新しました –

+0

この設定では、ユーザーが前のアクティビティに戻ると、そのボタンを使用できません... – jason

関連する問題