我经常搜索,但找不到答案。如果有人能提供帮助,非常感谢。
我正在构建一个Android应用程序,我可以启动另一个应用程序并传递一些必需的数据吗?
示例 MyApplication启动需要用户名和密码的“AnotherApplication”。 那么我可以启动“AnotherApplication”并传递这两个参数吗?
我无法控制“AnotherApplication”代码。所以我无法从Intent中读取数据或其他内容。我甚至不知道应用程序如何读取这两个参数(Intent / input的值等)
技术上可行吗?如果是,请提供样本片段以实现此目的。
答案 0 :(得分:0)
是的,您可以将原始数据或Serializable或Parceable数据附加到Intent中。请参阅enter link description here
答案 1 :(得分:0)
是的,这是一个完整的例子
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);
}
}