2012-12-07 56 views
1

我想顯示位於我的spalsh屏幕上的android清單中的versionName(number)。我發現了一些示例代碼,但它們不起作用。這似乎是一個簡單的任務,但它不顯示從飛濺的xml我顯示版本名稱

文本視圖:

<TextView 
     android:id="@+id/ver_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:layout_marginBottom="33dp" 
     android:layout_marginRight="30dp" 
     android:text=" " /> 

顯示方法:

private void displayVersionName() { 
    String versionName = ""; 
    PackageInfo packageInfo; 
    try { 
     packageInfo = getPackageManager().getPackageInfo(getPackageName(), 0); 
     versionName = "ver:" + packageInfo.versionName; 
    } catch (NameNotFoundException e) { 
     e.printStackTrace(); 
    } 
    TextView tv = (TextView) findViewById(R.id.ver_name); 
    tv.setText(versionName); 
    } 
+0

不要做splashcreens? – njzk2

+0

@ njzk2我主要在設置屏幕上,所以人們可以快速檢查 –

+0

後堆棧跟蹤?你有日誌嗎?你什麼時候調用這個方法? – njzk2

回答

0

更改您的代碼,以獲得您的應用程序版本的名稱使用代碼

private void displayVersionName() { 
    String verName = ""; 
    try { 
     verName = "ver:" + Current_Activity.this.getPackageManager(). 
          "YOUR_APPLICATION_PACKAGE_NAME", 0).versionName; 
    } catch (NameNotFoundException e) { 
     e.printStackTrace(); 
    } 
    TextView tv = (TextView) findViewById(R.id.ver_name); 
    tv.setText(verName); 
    } 
5

也許NameNotFoundException被拋出?或者當你顯示版本字符串時可能會發生什麼?

無論如何,我和你完全一樣,它確實爲我工作。你可以用下面的代碼驗證什麼getVersionInfo回報,然後才嘗試以顯示它

public String getVersionInfo() { 
     String strVersion = "Version:"; 

     PackageInfo packageInfo; 
     try { 
      packageInfo = getApplicationContext() 
       .getPackageManager() 
       .getPackageInfo(
        getApplicationContext().getPackageName(), 
        0 
       ); 
      strVersion += packageInfo.versionName; 
     } catch (NameNotFoundException e) { 
      strVersion += "Unknown"; 
     } 

     return strVersion; 
    } 
+0

你真的不應該在這裏收到一個例外,因爲包名稱是當前正在運行的包的名稱,很明顯,它的安裝(因此可以找到) – njzk2

+0

@ njzk2好吧,我不應該.. –

+0

@Alex(@ njzk2)LOL - 在ADT中,我實際上因爲沒有捕獲異常而遭到斥責 - 如果被排除在外 - 但在「未知」之後還有一個缺失的分號。仍+1。 – flowtron

0

試試這個:

TextView tv = (TextView) findViewById(R.id.ver_name); 
tv.setText("version : " + BuildConfig.VERSION_NAME); 

和進口,你想擁有的versionName包的BuildConfig

import com.yourpackage.BuildConfig;