В прошлом уроке мы создавали простой AlertDialog. а в этом уроке я покажу как создавать экран приветствия с помощью диалога...
Нам нужно чтобы диалог запускался вместе с Activity, и чтобы следующий раз он не мешал пользователю по его решению не показывать, сделаем CheckBox с надписью Не показывать больше, ну что, приступим!
Для начала создадим новый проект, и в папке layout создадим checkbox.xml:
и перейдем в res/values/strings.xml, откроем его и добавим эти строки:
затем откройте MainActivity.java
И после
затем после
Toast toast = Toast.makeText(getApplicationContext(),
"Вы нажали OK!", Toast.LENGTH_SHORT);
toast.show();
Toast toast = Toast.makeText(getApplicationContext(),
"Вы нажали Cancel!", Toast.LENGTH_SHORT);
toast.show();
код, думаю, всем понятен, зовем диалог, setTitle у нас свой заголовок, sеtMessage показываем сообщение, и кнопки OK и Cancel с условиями отметки CheckBox, и после editor.commit(); можем указать кнопке свое назначение, н-р у нас Toast, будет показывать что нажали.
Запустим и посмотрим что получилось:
Вот видите все достаточно просто, я к этому приложил еще и видео в котором вы увидите что после отметки чекбокса диалог не будет показываться:
Нам нужно чтобы диалог запускался вместе с Activity, и чтобы следующий раз он не мешал пользователю по его решению не показывать, сделаем CheckBox с надписью Не показывать больше, ну что, приступим!
Для начала создадим новый проект, и в папке layout создадим 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
android:id="@+id/skip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/dontshow" >
</CheckBox>
</LinearLayout>
и перейдем в res/values/strings.xml, откроем его и добавим эти строки:
<string name="title">Осторожно!</string>
<string name="message">Эти настройки предназначены только для разработчиков, если вы что-то здесь меняли просим не ссылать баг-репорты.</string>
<string name="dontshow">Не показывать больше</string>
затем откройте MainActivity.java
И после
public class MainActivity extends Activity implements OnClickListener {
добавьте строки:
public static final String PREFS_NAME = "MyPrefsFile1";
public CheckBox dontShowAgain;
затем после
setContentView(R.layout.main);
пишете
AlertDialog.Builder adb = new AlertDialog.Builder(this);
LayoutInflater adbInflater = LayoutInflater.from(this);
View eulaLayout = adbInflater.inflate(R.layout.checkbox, null);
dontShowAgain = (CheckBox) eulaLayout.findViewById(R.id.skip);
adb.setView(eulaLayout);
adb.setTitle(getString(R.string.thanks));
adb.setMessage(getString(R.string.message));
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();
Toast toast = Toast.makeText(getApplicationContext(),
"Вы нажали OK!", Toast.LENGTH_SHORT);
toast.show();
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();
Toast toast = Toast.makeText(getApplicationContext(),
"Вы нажали Cancel!", Toast.LENGTH_SHORT);
toast.show();
return;
}
});
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
String skipMessage = settings.getString("skipMessage", "NOT checked");
if (!skipMessage.equals("checked"))
adb.show();
super.onResume();
код, думаю, всем понятен, зовем диалог, setTitle у нас свой заголовок, sеtMessage показываем сообщение, и кнопки OK и Cancel с условиями отметки CheckBox, и после editor.commit(); можем указать кнопке свое назначение, н-р у нас Toast, будет показывать что нажали.
Запустим и посмотрим что получилось:
После нажатия OK:
Вот видите все достаточно просто, я к этому приложил еще и видео в котором вы увидите что после отметки чекбокса диалог не будет показываться:
Комментариев нет:
Отправить комментарий