Многие приложения для Android теперь отображают модальную версию с последним списком изменений после ее установки или обновления.
Как я могу отобразить прокручиваемый модаль после того, как приложение было изначально установлено или обновлено?
Многие приложения для Android теперь отображают модальную версию с последним списком изменений после ее установки или обновления.
Как я могу отобразить прокручиваемый модаль после того, как приложение было изначально установлено или обновлено?
Заканчивается следующим кодом Часть 1. Проверка просмотра списка изменений
//evaluate if we will show changelog
try {
//current version
PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
int versionCode = packageInfo.versionCode;
//version where changelog has been viewed
SharedPreferences settings = getSharedPreferences(SAPNotePreferences.PREFS_NAME, 0);
int viewedChangelogVersion = settings.getInt(SAPNotePreferences.KEY_CHANGELOG_VERSION_VIEWED, 0);
if(viewedChangelogVersion<versionCode) {
Editor editor=settings.edit();
editor.putInt(SAPNotePreferences.KEY_CHANGELOG_VERSION_VIEWED, versionCode);
editor.commit();
displayChangeLog();
}
} catch (NameNotFoundException e) {
Log.w("Unable to get version code. Will not show changelog", e);
}
Часть 2, отображающая диалоговое окно изменения
//load some kind of a view
LayoutInflater li = LayoutInflater.from(this);
View view = li.inflate(R.layout.changelog_view, null);
new AlertDialog.Builder(this)
.setTitle("Changelog")
.setIcon(android.R.drawable.ic_menu_info_details)
.setView(view)
.setNegativeButton("Close", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//
}
}).show();
Часть 3 макет с помощью журнала изменений
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ScrollView android:id="@+id/aboutscrollview"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:text="Thanks for installing ..."
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="15px"
android:layout_gravity="center_vertical"
android:textColor="#ffffff" />
<TextView android:text="Changes: "
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="15px"
android:paddingLeft="15px"
android:textStyle="bold"
android:textColor="#ffffff" />
<TextView android:text="v2.0:changes..."
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="15px"
android:paddingBottom="10px"
android:textColor="#ffffff" />
</LinearLayout>
</ScrollView>
</LinearLayout>
С помощью журнала изменений Android вы можете легко создавать, показывать и поддерживать диалог журнала изменений Android.
Особенности:
- отображает только то, что новый или весь журнал изменений
- отображение первого запуска вновь установленного приложения или новой версии приложения
- напишите журнал изменений на упрощенном языке, но при необходимости используйте HTML и CSS...
У этого сообщения есть ответ для примера с исходным кодом.
http://www.londatiga.net/it/programming/android/how-to-show-whats-new-dialog-in-android-app/
Я думаю, что вы, вероятно, на правильном пути. Для # 1 у меня есть класс, который наследует диалог, и его макет просто имеет ScrollView, содержащий TextView, а затем кнопку "увольнять" после этого.
Что касается №2, то, что я сделал в моей статье, это сохранить настройки для LastVersionNotesSeen, которые содержат... ну, номер версии для последних заметок.:) Если это число меньше текущей версии, я показываю последние версии и обновляю текущую версию.
Для отображения журнала изменений вы также можете локализовать (то есть загрузить из папки res) html в диалоговом окне:
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
dialog.setTitle(getString(R.string.changelog_dialog_title));
dialog.setIcon(getResources().getDrawable(R.drawable.icon));
WebView wv = new WebView(getApplicationContext());
wv.loadData(getString(R.string.changelog_dialog_text), "text/html", "utf-8");
dialog.setView(wv);
dialog.setPositiveButton(getString(android.R.string.ok), new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
dialog.show();
Магия - это код html 'page' в res/values /strings.xml:
<string name="changelog_dialog_text">
<![CDATA[<b>Version 1.3.0:</b>
<ul>
<li>Change 1</li>
<li>Change 2</li>
</ul>
]]>
</string>