cap*_*oid 0 tabs android android-activity
我有2个选项卡 - Tab1和Tab2,Tab1Activity和Tab2Activity.
我想将值从Tab1Actvity传递给Tab2Activity但不想启动Tab2Activity.当我尝试下面的代码时,它给出null值:
在Tab1Activity中
getParent().getIntent().putExtra("key", "value");
Run Code Online (Sandbox Code Playgroud)
在Tab2Activity中
String valueString=getParent().getIntent().getStringExtra("key");
System.out.println("Testing.....: "+valueString);
Run Code Online (Sandbox Code Playgroud)
我真的不鼓励你通过扩展Application类来使用全局变量.如果您的应用程序进入后台(例如,通过电话),Android系统可能会决定终止您的应用程序.调用完成后,您的应用程序和活动堆栈将恢复,但您的活动状态将丢失.
我宁愿建议您使用广播将数据发送到另一个活动.
在你的Tab1Activity中:
Intent dataIntent = new Intent();
dataIntent.setAction("com.your.app.DATA_BROADCAST");
dataIntent.putExtra("tag", "your data");
sendBroadcast(dataIntent);
Run Code Online (Sandbox Code Playgroud)
Tab2Activity:
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String yourData = intent.getStringExtra("tag");
}
};
IntentFilter filter = new IntentFilter();
filter.addAction("com.your.app.DATA_BROADCAST");
registerReceiver(receiver, filter);
Run Code Online (Sandbox Code Playgroud)