gpt4 book ai didi

java - 如何制作一个 "do not ask me again"的对话框弹出框?安卓

转载 作者:IT老高 更新时间:2023-10-28 23:17:15 34 4
gpt4 key购买 nike

我正在尝试创建一个“提示”对话框,通知用户在手机上启用 GPS 会缩短电池生命周期。我希望它弹出,但有一个复选框,上面写着:“不要再问我了”。

如何在 Android 中创建它?

谢谢,

祖基。

AlertDialog.Builder prompt = new AlertDialog.Builder(this); 
prompt.setCancelable(false);
prompt.setTitle("Warning");
prompt.setMessage ("HINT: Otherwise, it will use network to find" +
"your location. It's inaccurate but saves on " +
"battery! Switch GPS on for better accuracy " +
"but remember it uses more battery!");

最佳答案

编辑:当心!前面的代码重复。由于我不再为 Android 开发,我无法重构下面的代码。

它在 Android Preferences 中设置一个值并检查它是否会显示对话框。

checkbox.xml 在资源/布局中

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_root"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:padding="10dp" >
<CheckBox
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/skip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Ok please do not show again." >
</CheckBox>
</LinearLayout>

Activity.java

public class MyActivity extends Activity {
public static final String PREFS_NAME = "MyPrefsFile1";
public CheckBox dontShowAgain;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}

@Override
protected void onResume() {
AlertDialog.Builder adb = new AlertDialog.Builder(this);
LayoutInflater adbInflater = LayoutInflater.from(this);
View eulaLayout = adbInflater.inflate(R.layout.checkbox, null);
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
String skipMessage = settings.getString("skipMessage", "NOT checked");

dontShowAgain = (CheckBox) eulaLayout.findViewById(R.id.skip);
adb.setView(eulaLayout);
adb.setTitle("Attention");
adb.setMessage(Html.fromHtml("Zukky, how can I see this then?"));

adb.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
String checkBoxResult = "NOT checked";

if (dontShowAgain.isChecked()) {
checkBoxResult = "checked";
}

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();

editor.putString("skipMessage", checkBoxResult);
editor.commit();

// Do what you want to do on "OK" action

return;
}
});

adb.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
String checkBoxResult = "NOT checked";

if (dontShowAgain.isChecked()) {
checkBoxResult = "checked";
}

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();

editor.putString("skipMessage", checkBoxResult);
editor.commit();

// Do what you want to do on "CANCEL" action

return;
}
});

if (!skipMessage.equals("checked")) {
adb.show();
}

super.onResume();
}
}

As you can see, I did "copy and paste" too. Changed only the message strings. It works beautifully.

关于java - 如何制作一个 "do not ask me again"的对话框弹出框?安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9550039/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com