6

嗨,我正在开发一个用于教育的 android 启动器,我需要它能够在用户单击学校工具按钮时启动安装在设备上的学校工具应用程序

这是代码

package com.d4a.stzh;

import android.net.Uri;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.content.Intent;

import com.actionbarsherlock.app.SherlockFragment;

public class FragmentTab1 extends SherlockFragment {
    private Button appbtn;
    private Button webbtn;
    private Button toolsbttn;



    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // Get the view from fragmenttab1.xml
        View view = inflater.inflate(R.layout.fragmenttab1, container, false);


        //Get the button from layout
        appbtn = (Button) view.findViewById(R.id.app);
        webbtn = (Button) view.findViewById(R.id.web);
        toolsbttn = (Button) view.findViewById(R.id.tools);

       //show all apps installed on the device 
        appbtn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent intent = new Intent(FragmentTab1.this.getActivity(), MyLauncherActivity.class);
                startActivity(intent);

            }


            });


        //luanches google on the default web browser
        webbtn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                String url = "http://www.google.com";
                Intent i = new Intent(Intent.ACTION_VIEW);
                i.setData(Uri.parse(url));
                startActivity(i);
            }
        });
        //tools button i know ths code is wrong!I need help here!
        toolsbttn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent intent = new Intent(FragmentTab1.this.getActivity(), MyLauncherActivity.class);
                startActivity(intent);

            }


            });

        return view;
    }


    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        setUserVisibleHint(true);
    }

}

我还是 android 编码的新手,所以请不要评判我

任何帮助都会很棒提前谢谢

问候

说唱11

4

1 回答 1

14

此代码片段应该完全符合您的要求

Intent i;
PackageManager manager = getPackageManager();
try {
   i = manager.getLaunchIntentForPackage("com.example.schoolToolApp");
if (i == null)
    throw new PackageManager.NameNotFoundException();
i.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(i);
} catch (PackageManager.NameNotFoundException e) {

}

它只会按其包名启动另一个应用程序

源 -从您自己的(意图)打开另一个应用程序

于 2013-09-21T21:20:33.940 回答