7

私はこのマニフェストを持っています:

<manifest ...
    package="com.my">

    <application ...>

        <activity ...
            android:name=".app.Run">
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    <activity ...
    android:name=".app.Preferences"/>

    <activity ...
    android:name=".library.error.ErrorDialog"/>

    </application>

</manifest>

ErrorDialogアクティビティからアクティビティを開始するにはどうすればよいRunですか?

Intent intent = new Intent();
intent.setComponent(new ComponentName("com.my.library.error", "com.my.library.error.ErrorDialog"));
startActivity(intent);

または

Intent intent = new Intent();
intent.setComponent(new ComponentName("library.error", "library.error.ErrorDialog"));
startActivity(intent);

動作していません


メア・カルパ… メア・カルパ…

私のErrorDialogアクティビティは公開されていませんでした。:D

4

4 に答える 4

9

1. アプリケーションマニフェストファイル関連

Manifest: 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
  package="app.run"/> 
<activity android:name="app.run"/> 
<activity android:name="library.error.ErrorDialog"/>

package app.run  // Your Main Application Package Name

Activity:
Intent i = new Intent(); 
i.setClassName("app.run", "library.error.ErrorDialog"); //
startActivity(i); 

setClassName()


2. アプリケーションマニフェストファイルとは関係ありません

Intent intent = new Intent();
intent.setComponent(new ComponentName("packagename whos activity u want to launch","classname.java"));   
startActivity(intent); 

setComponentName()

あなたの場合

Intent intent=new Intent();
intent.setComponent(new ComponentName("library.error", "library.error.ErrorDialog")); 
startActivity(intent);
于 2013-01-20T11:00:18.733 に答える
4

2 つの異なるアプリケーション (パッケージ) を作成した後。最初のアプリケーションのマニフェスト ファイルに移動し、次のように編集します:--

<activity
android:name="com.example.applicationfire.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.application2.Second"
android:label="@string/app_name" >
</activity>

ここでは、最初のアプリケーションから開きたい 2 番目のアプリケーションのアクティビティを宣言するだけです。ここで、「com.example.application2」は別のアプリケーションのパッケージ名で、「Second」は 2 番目のパッケージにあるアクティビティの名前であることに注意してください。

別のアプリケーションで別のアクティビティを開始するために起動するインテントは、次のようなものになります。

btnStart.setOnClickListener(new OnClickListener() 
    {
        @Override
        public void onClick(View arg0) 
        {
            // TODO Auto-generated method stub
Intent intent = new Intent("android.intent.action.MAIN");
intent.setComponent(new   ComponentName("com.example.application2","com.example.application2.Second"));
startActivity(intent);
}       });}

ここで、インテントに渡される最初の引数は 2 番目のアプリケーションのパッケージ名になり、2 番目の引数は開かれるアクティビティの名前になります。それでおしまい。PS: 最初のアプリを実行してください!

于 2015-08-12T10:37:16.643 に答える
0

次のコードを使用できます。

Intent myIntent= new Intent(FirstActivity.this,SecondActivity.class); 
startActivity(myIntent);

クラスが同じパッケージ内または別のパッケージ内にある場合、違いはありません。クラスを必ずインポートしてください。

マニフェストでこのコードを使用しました。

<activity
    android:name="com.mycompany.mainapplication.package1.SecondActivity"
    android:label="Simple Math Questions" >
</activity>
于 2013-01-20T10:58:17.090 に答える