2013-10-23 41 views
0

我有一個使用共享首選項的alertDialog,因此對話框只能顯示一次。你們中的一些人可能知道它導致我的行爲有趣,我的意思是沒有響應我的按鈕onClick。我被告知要將alert.show();之後開始的活動的下半部分移出if共享首選項的陳述if (!initialDialogDisplayed) {我遇到的問題是我不知道將活動的下半部分移到哪裏。我不知道是否應該移動將代碼移出sharedPreference需要的幫助

final EditText et = (EditText) findViewById(R.id.editText1); 
    Button getAnswer = (Button) findViewById(R.id.button1); 
      getAnswer.setOnClickListener(new OnClickListener() { 

上面的共享首選項還是什麼。所以我希望有人能真正幫助我解決這個問題。

public class MainActivity extends Activity { 


     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 

     SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); 
    boolean initialDialogDisplayed = preferences.getBoolean("InitialDialog", false); 
    if (!initialDialogDisplayed) { 
     Editor editor = preferences.edit(); 
     editor.putBoolean("InitialDialog", true); 
     editor.commit(); 


final AlertDialog.Builder alertDialog = new AlertDialog.Builder(this); 

     alertDialog.setTitle("Alert"); 
     alertDialog.setIcon(R.drawable.ic_launcher); 
     alertDialog.setMessage("Dialog"); 

     alertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() { 

      public void onClick(DialogInterface dialog, int which) { 

      } 
     }); 

     alertDialog.show(); 
       final EditText et = (EditText) findViewById(R.id.editText1); 
       Button getAnswer = (Button) findViewById(R.id.button1); 
       getAnswer.setOnClickListener(new OnClickListener() { 
        @Override 
        public void onClick(View v) {  
         if (et.getText().toString().length()==0) { 
          Toast.makeText(getApplicationContext(),"Can't Be Blank!",Toast.LENGTH_LONG).show();    

         }else{ 
          EditText et = (EditText) findViewById(R.id.editText1); 
          String searchTerm = et.getText().toString().trim();   
          Intent in = new Intent(MainActivity.this, ListView.class); 
          in.putExtra("TAG_SEARCH", searchTerm); 
          startActivity(in); 
         } 

        } 
       }); 
      } 
     } 


     @Override 
     protected void onStop() { 
      // TODO Auto-generated method stub 
      super.onStop(); 
     }} 

回答

0

你要移到端架爲if (!initialDialogDisplayed),如果進一步堵塞,從而使按鈕OnClickListener是在每次onCreate被調用時,不僅當!initialDialogDisplayed

public class MainActivity extends Activity { 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); 
boolean initialDialogDisplayed = preferences.getBoolean("InitialDialog", false); 
if (!initialDialogDisplayed) { 
    Editor editor = preferences.edit(); 
    editor.putBoolean("InitialDialog", true); 
    editor.commit(); 


final AlertDialog.Builder alertDialog = new AlertDialog.Builder(this); 

    alertDialog.setTitle("Alert"); 
    alertDialog.setIcon(R.drawable.ic_launcher); 
    alertDialog.setMessage("Dialog"); 

    alertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() { 

     public void onClick(DialogInterface dialog, int which) { 

     } 
    }); 

    alertDialog.show(); 


    } //XXX finish the if block here, so that our OnClickListener is set 


      final EditText et = (EditText) findViewById(R.id.editText1); 
      Button getAnswer = (Button) findViewById(R.id.button1); 
      getAnswer.setOnClickListener(new OnClickListener() { 
       @Override 
       public void onClick(View v) {  
        if (et.getText().toString().length()==0) { 
         Toast.makeText(getApplicationContext(),"Can't Be Blank!",Toast.LENGTH_LONG).show();    

        }else{ 
         EditText et = (EditText) findViewById(R.id.editText1); 
         String searchTerm = et.getText().toString().trim();   
         Intent in = new Intent(MainActivity.this, ListView.class); 
         in.putExtra("TAG_SEARCH", searchTerm); 
         startActivity(in); 
        } 

       } 
      }); 
     // } // don't finish if block here 
    } 


    @Override 
    protected void onStop() { 
     // TODO Auto-generated method stub 
     super.onStop(); 
    }} 
+0

非常感謝您!我會永遠不會認爲這將是答案! –

+0

不是問題:)標記爲答案或upvote如果它幫助:) – panini

0

我是對目前您遇到的問題或您想要的有點困惑,但如果您希望ButtonEditText代碼運行,而不管initialDialogDisplayed的值如何,則請移動此代碼

final EditText et = (EditText) findViewById(R.id.editText1); 
      Button getAnswer = (Button) findViewById(R.id.button1); 
      getAnswer.setOnClickListener(new OnClickListener() { 
       @Override 
       public void onClick(View v) {  
        if (et.getText().toString().length()==0) { 
         Toast.makeText(getApplicationContext(),"Can't Be Blank!",Toast.LENGTH_LONG).show();    

        }else{ 
         EditText et = (EditText) findViewById(R.id.editText1); 
         String searchTerm = et.getText().toString().trim();   
         Intent in = new Intent(MainActivity.this, ListView.class); 
         in.putExtra("TAG_SEARCH", searchTerm); 
         startActivity(in); 
        } 

       } 
      }); 

直屬

setContentView(R.layout.activity_main);