许多Android应用现在会在安装或更新后显示最新更改日志的模式。
如何在最初安装或更新应用程序后显示可滚动模式?
答案 0 :(得分:18)
借助 Android更改日志,您可以轻松创建,显示和维护Android更改日志对话框。
功能是:
- 仅显示新内容或整个更改日志
- 在新安装的应用或新应用版本的首次启动时显示
- 以简化语言编写更改日志,但如果需要,还可以使用HTML和CSS ...
答案 1 :(得分:17)
结束以下代码 第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部分使用changelog
的布局<?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>
答案 2 :(得分:4)
这篇文章的答案就是示例源代码。
http://www.londatiga.net/it/programming/android/how-to-show-whats-new-dialog-in-android-app/
答案 3 :(得分:2)
我认为你可能走在正确的轨道上。对于#1,我有一个继承对话框的类,它的布局只有一个包含TextView的ScrollView,然后是一个“关闭”按钮。
关于#2,我在我的中所做的是存储LastVersionNotesSeen的设置,该设置保存...以及最后显示的注释的版本号。 :)如果该数字小于当前版本,我会显示最新版本的注释并将值更新为当前版本。
答案 4 :(得分:2)
为了显示更改日志,您还可以在对话框中本地化(即从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();
神奇的是如何在res / values / strings.xml中编写html'page':
<string name="changelog_dialog_text">
<![CDATA[<b>Version 1.3.0:</b>
<ul>
<li>Change 1</li>
<li>Change 2</li>
</ul>
]]>
</string>