2012-12-07 121 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;