【问题标题】:Launch another android application along with passing data启动另一个 android 应用程序并传递数据
【发布时间】:2015-06-17 19:54:35
【问题描述】:

我确实搜索了很多,但我找不到我的答案。如果有人可以提供帮助,不胜感激。

我正在构建一个 android 应用程序,我可以启动另一个应用程序并传递一些必需的数据吗?

示例。 MyApplication 启动需要用户名和密码的“AnotherApplication”。 那么我可以在传递这两个参数的同时启动“AnotherApplication”吗?

我无法控制“AnotherApplication”代码。所以我无法从 Intent 或其他内容中读取数据。而且我什至不知道该应用程序如何读取这两个参数(意图/输入值等)

技术上可行吗?如果是,请向我提供示例 sn-p 以实现此目的。

【问题讨论】:

  • 你可以使用-intent.putExtra("Key", "Your data here");以与活动之间的数据传递类似的方式。
  • 感谢您的快速解答,但我无法控制要启动的目标应用程序。所以我无法从 Intent.getExtra..() 之类的东西中读取数据。
  • 如果您无法控制目标应用程序,为什么要传递数据?
  • 你能详细说明一下,你真正想要什么吗?

标签: android


【解决方案1】:

是的,您可以将原始、可序列化或可解析的数据附加到 Intent 中。请看enter link description here

【讨论】:

    【解决方案2】:

    是的,这是一个完整的例子

    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 android.widget.EditText;
    
    public class MainActivity extends Activity implements OnClickListener {
      
      EditText etFName;
      EditText etLName;
      
      Button btnSubmit;
      
      
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            etFName = (EditText) findViewById(R.id.etFName);
            etLName = (EditText) findViewById(R.id.etLName);
            
            btnSubmit = (Button) findViewById(R.id.btnSubmit);
            btnSubmit.setOnClickListener(this);
            
        }
    
    
      @Override
      public void onClick(View v) {
        Intent intent = new Intent(this, ViewActivity.class); 
        intent.putExtra("fname", etFName.getText().toString());
        intent.putExtra("lname", etLName.getText().toString());
        startActivity(intent);
      } 
    }
    

    这里还有其他活动

    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.widget.TextView;
    
    public class ViewActivity extends Activity {
      
      TextView tvView;
      
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.view);
        
        tvView = (TextView) findViewById(R.id.tvView);
        
        Intent intent = getIntent();
        
        String fName = intent.getStringExtra("fname");
        String lName = intent.getStringExtra("lname");
        
        tvView.setText("Your name is: " + fName + " " + lName);
      }
    } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多