2013-04-15 53 views
0

我目前正在研究一個項目,我正在嘗試添加一個製作比賽的圖標,而獲勝者將收到一個特殊的應用程序插件,只有比賽獲勝者才能獲得和我想要我的應用程序檢查用戶設備上是否存在包(特殊應用程序插件),如果有,我希望應用程序在運行時顯示備用顯示。我是否應該使用「if」 和「else」語句實現這一點,如果是這樣,我將如何去了解這一點,並感謝先進。使用If和其他來改變佈局文件在運行時

注:我已成功地使應用程序加載不同的佈局,這取決於Android版本,所以我有一點想法,但需要一些幫助。

回答

2

檢查安裝了該知道的應用程序或不..

public class Example extends Activity 
{ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     //Put the package name here... 
     boolean installed = appInstalledOrNot("com.Ch.Example.pack"); 
     if(installed) 
     { 
     //This intent will help you to launch if the package is already installed 
     Intent LaunchIntent = getPackageManager() 
      .getLaunchIntentForPackage("com.Ch.Example.pack"); 
    startActivity(LaunchIntent); 


        System.out.println("App already installed om your phone"); 


     } 
     else 
     { 
      System.out.println("App is not installed om your phone"); 
     } 
    } 
    private boolean appInstalledOrNot(String uri) 
    { 
     PackageManager pm = getPackageManager(); 
     boolean app_installed = false; 
     try 
     { 
       pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES); 
       app_installed = true; 
     } 
     catch (PackageManager.NameNotFoundException e) 
     { 
       app_installed = false; 
     } 
     return app_installed ; 
} 
} 
1

你可以根據的onCreate()..

正如我在我的代碼做你的要求改變你的xml文件,對於不同密度的,我用不同的XML文件。

if (metrics.densityDpi == DisplayMetrics.DENSITY_MEDIUM) { 
    setContentView(R.layout.activity_main); 
} else if (metrics.densityDpi == DisplayMetrics.DENSITY_LOW) { 
    setContentView(R.layout.activity_main_small); 
} else { 
    setContentView(R.layout.activity_main_large); 
} 
+0

謝謝你preet,但我已經知道如何做到這一點,但我想知道如何檢查一個包是否存在,如果它確實改變了layout.xml – Shayden117

+0

感謝幫助每個人我得到它的工作 – Shayden117

2

那麼如果你的插件有一個唯一的名字(我相信它應該),你可以檢查一下。

請閱讀下面的鏈接檢查插件是否存在

鏈接的帖子:https://stackoverflow.com/a/6758962/1542720

希望這有助於!