如何从Android按钮单击运行单独的应用程序

时间:2012-06-07 12:11:34

标签: java android

我尝试在Android应用程序中添加两个按钮,从单独的两个应用程序订购系统和库存系统中选择一个应用程序。如图所示。

enter image description here

我已将这两个应用程序实现为单独的两个Android项目。当我尝试运行此应用程序时,它会直到选择窗口正确,但是当按下一个按钮时,模拟器会显示“强制关闭”消息。 我已将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);
            }
};
}

谢谢!

3 个答案:

答案 0 :(得分:2)

确定这有效

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

将org.abc替换为您要启动的应用程序的包名称。

答案 1 :(得分: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); 

OR 使用此:

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);
}

答案 2 :(得分:0)

this回答和链接项目的帮助下,在我自己的应用程序中做了类似的事情。