1

親愛なるオーバーフロー メンバーの皆さん インテントを使用して別のアプリからクラスを起動する方法を教えてもらいました。「If」と「Else」を使用して、パッケージが存在するかどうか、および起動を継続するかどうかを確認したいと思いますが、存在しないことをユーザーに通知するトーストが表示されず、インテントを起動しようとしている方法がボタンのクリックである場合。助けてくれてありがとう

if と else を追加したいコードのブロックは次のとおりです。

Button button91 = (Button) findViewById(R.id.dlc);
        button91.setOnClickListener(new OnClickListener() {         
            public void onClick(View v) {

                Intent i=new Intent("com.dlc.MainActivity.class"); startActivity(i);
            }
        });
4

2 に答える 2

2

いいえ、if/else はstartActivity()失敗した場合に例外をスローするので機能しないため、以下を使用する必要がありますtry/catch

Intent i=new Intent("com.dlc.MainActivity.class"); 

try {
  startActivity(i);
} catch ( Exception e ) {
    // start activiy failed - show toast etc...
}

また、特定のパッケージが存在するかどうかを調べるには、を使用する必要がありPackageManagerますgetPackageInfo()

ドキュメント: http://developer.android.com/reference/android/content/pm/PackageManager.htmlおよびhttp://developer.android.com/reference/android/content/pm/PackageManager.html#getPackageInfo%28java. lang.String,%20int%29

于 2013-04-07T10:50:09.800 に答える