안녕하세요.

목돌이님의  "업데이트 내역 표시하기"을  참조하여  작업한 것인데요.
http://www.androidpub.com/698317

위 글에서 내용을 추가한 것이므로  먼저  윗글 먼저 보세요.


업데이트 내역을 표시하다 보니가  2가지 아쉽더라구요.

업데이트 내역이  무자게 많아서  한 화면을 넘어가는 경우에 대한 처리와

프로그램 실행할 때 한번 띄우는 것도 좋은데, 
설정에서  원하는 시점에 띄우는 것도 추가하면 좋겠더라구요.


먼저  strings.xml 파일에  출력할  내용을  넣어둡니다.

 <string name="update_title">업데이트 정보</string>
    <string name="update_details">* ver 4.8\n
        - DB목록보기 모드에서 영화가 없을 때, 폴더목록으로가면 
           No Images 이미지가 보이는 문제 수정.\n
        - 업데이트 정보 표시 화면 추가\n\n
        
        * ver 4.7\n
          - 표시이름 변경 : Soul Movie\n
          - 자막 가독성 개선\n
          - 컨트롤바 UI 변경\n
          - 일본어 추가\n
          - 중국어 추가\n\n
          
        * ver 4.6\n
            - 안드로이드 1.5 지원\n\n

        * ver 4.5\n
           - 안드로이드 2.2 에서 SD카드로 이동할 수 있도록 수정.\n\n

        * ver 4.4\n
           - 모든 파일에 대해서 이어보기 되도록 수정.\n
           - 이어보기 방법을 고를 수 있도록 추가.\n\n

        * ver 4.3\n
            - 통합자막 모두보기에서 "한글, 영어, 영어, 한글" 순으로 나오는경우,
                            한글이 먼저 사라지는 문제 수정.\n\n
                            
        * ver 4.2\n
            - 모토로이 이어보기 안되는 문제 수정.\n\n

        * ver 4.1\n
           - 자막싱크이동 버튼 교체\n
           - 버튼들 위치를 관련버튼들 끼리 모아둠\n\n
    
        * ver 4.0\n
           - AdMob 추가\n
           - 갤럭시S의 일부에서 죽는 문제 수정.\n\n
    </string>

위 예는  제 프로그램의  일분 정보를 가져 왔답니다^^ 
아무튼  업데이트 내역이 무자가 많습니다.

한국어 외에   다른나라 언어도 지원하시면,   각 언어별로 넣어주셔야 겠지요.

이거 번역하는게 문제라서  안 넣으려고 했는데,  의외로  이거 알고 싶어하시는 분들이 꽤 되더라구요.

다음은  이 내용을 출력할   layout 파일을 하나 만드는데요.

layout 파일을 이용해서   AlertDialog 에서 스크롤 기능을 제공하게 됩니다.

 <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/updateview" 
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent" 
   >

    <LinearLayout 
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:scrollbars="vertical" 
    android:scrollbarAlwaysDrawVerticalTrack="true"
    android:id="@+id/instructions_view" >

    <TextView   android:id="@+id/updatetext" 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content" 
                android:text="@string/update_details"/>
    </LinearLayout>
</ScrollView>


위 파일은  update.xml 이름으로 layout 디렉토리에 넣은 파일 입니다.

이제  업데이트 출력하는 함수를 만들어 줍니다.

어떤 클래스에 포함하는 것은  마음대로 하셔도 됩니다.

 public static void ShowUpdate(Context context, boolean bForce)
    {
        SharedPreferences pref = context.getSharedPreferences("VER", 0);
        
        try{
            PackageManager pm = context.getPackageManager();
            PackageInfo packageInfo = pm.getPackageInfo(context.getPackageName(), 0);
            int VERSION = packageInfo.versionCode;
            int old_Ver = pref.getInt("version", 0);
        
            if(old_Ver<VERSION || bForce){
                
                SharedPreferences.Editor edit = pref.edit();
                edit.putInt("version",  VERSION);
                edit.commit();

                new AlertDialog.Builder(context)
                    .setTitle(R.string.update_title)
                    .setView(LayoutInflater.from(context).inflate(R.layout.update,null))
                    .setPositiveButton(R.string.details_ok, null)
                    .show();
                
            }
        }
        catch(Exception e){}
    }

위  ShowUpdate() 가 2개의  파라미터를  받는데요.

첫번째 것은  호출하는 Activity 클래스 를 받고,  두번째 것을   무조건 띄울 것인지 
버전을 확인해서  달라진 경우만 띄울 것인지를 판별하는 변수 입니다.


이제 호출하는 곳은  

프로그램의  Main Activity 의  OnCreate() 에서  아래와 같이 추가해 줍니다.

 ShowUpdate(this, false);


다음으로  설정화면   특정한 곳(클릭했을 때 출력을 원하는 곳) 에도    아래와 같이 추가해 줍니다.

 EditPreferences.ShowUpdate(EditPreferences.this, true);



이렇게 호출해 주시면,

cap12.png

이런식으로   화면이 나온답니다. ^^


수고하세요 ^^