Android 将更新的数据传递到主活动,而不刷新任何活动
这里我有3个activity和ActivityA包含显示用户名的文本视图,ActivityB仅包含重定向ActivityC的按钮,ActivityC包含编辑文本和保存按钮 现在,我想在单击“保存”按钮而不刷新任何活动时,将更新的文本从ActivityC更改为direct ActivityA,而不是我必须执行的操作?你能建议一个简单的方法吗Android 将更新的数据传递到主活动,而不刷新任何活动,android,android-intent,android-activity,Android,Android Intent,Android Activity,这里我有3个activity和ActivityA包含显示用户名的文本视图,ActivityB仅包含重定向ActivityC的按钮,ActivityC包含编辑文本和保存按钮 现在,我想在单击“保存”按钮而不刷新任何活动时,将更新的文本从ActivityC更改为direct ActivityA,而不是我必须执行的操作?你能建议一个简单的方法吗 我在复杂的项目中也有同样的要求,我需要使用api调用在服务器端保存用户位置,并在ActivityA中显示更新的数据 我不明白您为什么需要这个,但您可以通过将A
我在复杂的项目中也有同样的要求,我需要使用api调用在服务器端保存用户位置,并在ActivityA中显示更新的数据 我不明白您为什么需要这个,但您可以通过将ActivityC中EditText的值保存在SparedPreferences中来实现,这是一个如何实现的示例。然后,如果SparedPreferences中有保存的值,并且如果有,则应签入ActivityAi的onResume方法。获取该值并将其设置为Username TextView。另一种方法是使用LocalBroadcastManager。 代码如下
//ACTIVITY A CODE
TextView username_tv;
String username;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
username_tv = (TextView) findViewById(R.id.username_tv);
//Get your username and store it in username
username = getYourUsername();
username_tv.setText(username);
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(this);
lbm.registerReceiver(receiver, new IntentFilter("USER_NAME_CHANGED_ACTION"));
}
public BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent != null) {
username = intent.getStringExtra("username");
username_tv.setText(username);
}
}
};
//ACTIVITY C CODE
//ADD this code to your 'SAVE' Button Listener
Intent intent = new Intent("USER_NAME_CHANGED_ACTION");
intent.putExtra("username", editText.getText().toString());
// put your all data using put extra
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
有关localBroadcastManager的更多信息,请查看。EventBus将解决您的问题
我在复杂的项目中也有同样的要求,我需要使用api调用在服务器端保存用户位置,并在ActivityA中显示更新的数据。事件总线是一种很好的方法,但我不知道如何使用它。请提供简单的步骤建议示例,现在我在我的ptoject中使用此