2012-12-26 48 views
0

我有一個通知類,我定義我的應用程序的所有警報窗口,在這個方法沒有顯示此選項,再次形成如何創建一個警報,在一個集中的警報

public static void Alert1(Context con) { 
      AlertDialog.Builder builder = new AlertDialog.Builder(con); 
      builder.setTitle("my title"); 
      builder.setIcon(android.R.drawable.ic_dialog_info); 
      DialogListner listner = new DialogListner(); 
      builder.setMessage("my message"); 
      builder.setPositiveButton("ok", listner); 

      AlertDialog diag = builder.create(); 
      diag.show(); 
    } 

現在我想以類似的方式有一個複選框創建也是一個警告窗口「不要再顯示此」,如果選擇了避免這種警報

回答

0

視圖可以與此你的對話框創建一個單獨的佈局複選框和textview。膨脹此佈局並添加設置爲您的對話框視圖

好吧,它會像下面的東西。

View view = layoutInflator.inflate(R.layout.dialogView,null); 
//and set to your dialog 
dialog.setView(view); 

//Or you can set it to your builder also 

和處理onCheckListener的複選框

1

您可以使用該應用程序SharedPreference對象。通過嘗試第一次閱讀,在您的共享首選項中添加項目。你所要做的就是給對象一個值,並且每次檢查它。

3

我對這個問題

package com.example.user.testing; 

import android.content.DialogInterface; 
import android.content.SharedPreferences; 
import android.support.v7.app.AlertDialog; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.widget.CheckBox; 

public class MainActivity extends AppCompatActivity { 
CheckBox dontShowAgain; 
public static final String PREFS_NAME = "MyPrefsFile1"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    final AlertDialog.Builder adb = new AlertDialog.Builder(MainActivity.this); 
    LayoutInflater adbInflater = LayoutInflater.from(MainActivity.this); 
    View eulaLayout = adbInflater.inflate(R.layout.checkbox, null); 

    dontShowAgain = (CheckBox) eulaLayout.findViewById(R.id.skip); 
    adb.setView(eulaLayout); 
    adb.setTitle("Attention"); 
    adb.setMessage("Your message here"); 
    adb.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int which) { 


      SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
      SharedPreferences.Editor editor = settings.edit(); 
      editor.putBoolean("skipMessage", dontShowAgain.isChecked()); 
      editor.commit(); 
      dialog.cancel(); 
     } 
    }); 

    adb.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int which) { 
      dialog.cancel(); 
     } 
    }); 
    SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
    Boolean skipMessage = settings.getBoolean("skipMessage", false); 
    if (skipMessage.equals(false)) { 
     adb.show(); 
    } 

} 

}一個清晰,正確的做法

+0

哦,所以你必須清晰?我希望你能更多地瞭解你的清晰度。 –