Met*_*lel 2 android android-intent
我有2个应用程序.App1和App2.App1:编辑文本+按钮App2:只是文本视图.
这是onClick按钮
@Override
public void onClick(View v) {
Intent sendIntent = getPackageManager().getLaunchIntentForPackage("com.example.app2");
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.setType("text/plain");
startActivity(sendIntent);
}
Run Code Online (Sandbox Code Playgroud)
App1应启动App2设置App2的文本视图
EditText text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = getIntent();
String action = intent.getAction();
String type = intent.getType();
if (Intent.ACTION_SEND.equals(action) && type != null) {
if ("text/plain".equals(type)) {
String sharedText = intent.getStringExtra(Intent.EXTRA_TEXT);
text.setText(sharedText);
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我有nullpointerexception.请帮助和thx
所以你需要从APP1发送一些数据到APP2.
在您的代码中,NullPointer发生是因为您没有EditText text
通过调用初始化findViewById()
.此外,您可以简化编码.请尝试以下方法:
APP1:
@Override
public void onClick(View v) {
Intent sendIntent = getPackageManager().getLaunchIntentForPackage("com.example.app2");
sendIntent.putExtra("my_text", "This is my text to send.");
startActivity(sendIntent);
}
Run Code Online (Sandbox Code Playgroud)
APP2:
EditText text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text=(EditText)findViewById(R.id.edittext1);// This was missing in your code.
Intent intent = getIntent();
if (intent.hasExtra("my_text")) {
String sharedText = intent.getStringExtra("my_text");
text.setText(sharedText);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8088 次 |
最近记录: |