2012-01-02 51 views
0

我已經遍地搜索,找不到任何關於此:偏好複選框更改時運行代碼的方式?

我有一個複選框設置在首選項屏幕。我想在複選框被選中時彈出一個對話框,但是當複選框被選中時,我找不到一個被調用的方法。

我正在使用eclipse IDE。

任何人都可以幫助我嗎?

回答

0
checkboxbutton.setOnCheckedChangeListener(new OnCheckedChangeListener(){ 

    public void onCheckedChanged(CompoundButton arg0, boolean isChecked){ 

     if (isChecked){ 
      CheckBox cb1 = (CheckBox) findViewById(R.id.check1); 
      SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
      cb1.setChecked(settings.getBoolean("MY_NAME",true)); 
      String s1="OK"; 
      AlertDialog.Builder ad=new AlertDialog.Builder(IPCamera.this); 
      ad.setMessage("CHECKBOX SET"); 
      ad.setPositiveButton(s1, new DialogInterface.OnClickListener(){ 
       public void onClick(DialogInterface dialog, int which){ 
       } 
      }); 
      ad.show(); 
     } 
    } 
}); 
+0

好吧,那是非常混亂的。我應該把這個放在偏好活動還是我的主要活動中?另外,我應該爲R.id.check1做些什麼?我的複選框有一個ID,但沒有被識別。 – 2012-01-02 09:55:44

+0

如果你的ID沒有被識別,那麼你應該先清理你的項目。 R.java文件將創建所有資源的新實例,然後... bang ..它會接受你的id。將check1替換爲您的ID。對不起,我很抱歉:)匆忙回答。把這個放在首選項活動 – 2012-01-02 09:58:49

+0

對,除了這一行出現錯誤外,所有的工作都是這樣的:'checkboxbutton.setOnCheckedChangeListener(new OnCheckedChangeListener()',錯誤在於checkboxbutton無法解析,並且OnCheckChangedListener無法解析爲類型。 – 2012-01-02 10:16:49

0

您可以使用setOnCheckedChangeListener並覆蓋CompoundButton.onCheckedChanged(CompoundButton buttonView, boolean isChecked)方法來顯示你的對話框