安装或更新应用程序后显示模态

时间:2010-09-07 18:29:26

标签: android modal-dialog

许多Android应用现在会在安装或更新后显示最新更改日志的模式。

如何在最初安装或更新应用程序后显示可滚动模式?

5 个答案:

答案 0 :(得分:18)

Try this

  

借助 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)

答案 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>