• android中一个应用程序启动另外一个应用程序,并传递数据。


    一、android一个应用程序启动了另外一个应用程序时候有2中方法。

      第一种是知道了调用的app的具体action,category(一般前两个值是默认的即下面方法里的)、包名和类名

     public void start(View v)
        {
        	Intent intent2 = new Intent("android.intent.action.MAIN");  
    		intent2.addCategory("android.intent.category.LAUNCHER");              
    		ComponentName cn = new ComponentName("com.example.secondapp", "com.example.secondapp.MainActivity");              
    		intent2.setComponent(cn);  
              intent2.putExtra("name","zp"); this.startActivity(intent2); }

      第二种方式是只需知道应用程序的包名,这种方式用的较多

    public void start2(View v)
        {
        	PackageManager p=this.getPackageManager();
    		Intent in=p.getLaunchIntentForPackage("com.example.secondapp");
    		if(in!=null)
    		{
    			in.putExtra("name","zp");
    			this.startActivity(in);
    		}
    		else
    		{
    			Toast.makeText(this, "哟,赶紧下载安装这个APP吧", Toast.LENGTH_LONG).show();
    		}
        }
    

      二、在启动第二个程序的时候,可以传递参数,即用intent里putextra()值,或者批量用bundle,比如传递时“某某启动了应用程序”参见http://www.2cto.com/kf/201409/332952.html

     可先intent.putExtra("name", "zp");再startActivity(intent)在启动的应用程序里采用如下代码:就可以获取数据了
    public class MainActivity extends ActionBarActivity {
    
    	private TextView ed;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            ed=(TextView) findViewById(R.id.tx);
            Intent intent =getIntent();
            Bundle bundle = intent.getExtras();
            if (bundle != null) {
            	String name=(String) bundle.get("name");
            	ed.setText(name);
            }
    
            
        }
    

      

      

  • 相关阅读:
    day 24
    day23
    day 22
    java中空格的操作
    java 解析Word文档以及Excel表格数据带有图片(2003/2007)
    java中创建文件夹
    http请求问题
    js弹框显示全部内容
    java实现HTTP请求的三种方式
    solr与java整合使用
  • 原文地址:https://www.cnblogs.com/bokeofzp/p/4734581.html
Copyright © 2020-2023  润新知