4

Androidアプリケーションに2つのボタンを追加して、別々の2つのアプリケーションである注文システムと在庫システムからアプリケーションを選択しようとしました。画像に示すように。

ここに画像の説明を入力してください

これらの2つのアプリケーションを別々の2つのAndroidプロジェクトとして実装しました。このアプリケーションを実行しようとすると、選択ウィンドウが正しく表示されますが、ボタンを1つ押すと、エミュレーターに「強制終了」メッセージが表示されます。OrderシステムとInventoryシステムプロジェクトを最初のアプリケーションのビルドパスに追加してから、それらのパッケージ(com.oms.wsとcom.inv.ws)をインポートしました。これは正しくない可能性がありますが、これを行う方法がわかりません。私を助けてください!私はAndroidを初めて使用します。エミュレータを使ってこのアプリケーションをテストしたいです!

これが私がアプリケーションを選択するために使用したコードです。

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import com.oms.ws.*;

 public class ThirdScreen extends Activity {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.thirdscreen);

    Button oms;
    oms = (Button)findViewById(R.id.orderSystem); 
    oms.setOnClickListener(ordrMnagemntSys);

    Button inventory;
    inventory = (Button)findViewById(R.id.inventorySystem); 
    inventory.setOnClickListener(inventorySys);

}

private OnClickListener ordrMnagemntSys = new OnClickListener(){
    public void onClick(View v) {

            Intent oMs = new Intent(getApplicationContext(), com.oms.ws.TestOms.class);
            startActivity(oMs);
            }
};

private OnClickListener inventorySys = new OnClickListener(){
    public void onClick(View v) {

            Intent inven = new Intent(getApplicationContext(), com.inv.ws.TestInventory.class);
            startActivity(inven);
            }
};
}

ありがとう!

4

3 に答える 3

2

わかりましたこれは動作します

Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("org.abc");
startActivity(LaunchIntent);

org.abc を、起動するアプリケーションのパッケージ名に置き換えます。

于 2012-06-07T12:16:13.663 に答える
1

代わりにこれを試してください:

String app = "com.inv.ws/TestInventory";
Intent intent = new Intent(Intent.ACTION_MAIN);             
intent.setComponent(ComponentName.unflattenFromString(app));             
intent.addCategory(Intent.CATEGORY_LAUNCHER);             
startActivity(intent); 

またはこれを使用します:

private void  launchComponent(String packageName, String name){
    Intent launch_intent = new Intent("android.intent.action.MAIN");
    launch_intent.addCategory("android.intent.category.LAUNCHER");
    launch_intent.setComponent(new ComponentName(packageName, name));
    launch_intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    activity.startActivity(launch_intent);
}
于 2012-06-07T12:36:06.677 に答える
0

この答えとリンクされたプロジェクトの助けを借りて、自分のアプリで似たようなものを作りました。

于 2012-06-07T13:43:48.773 に答える