Android 将更新的数据传递到主活动,而不刷新任何活动

Android 将更新的数据传递到主活动,而不刷新任何活动,android,android-intent,android-activity,Android,Android Intent,Android Activity,这里我有3个activity和ActivityA包含显示用户名的文本视图,ActivityB仅包含重定向ActivityC的按钮,ActivityC包含编辑文本和保存按钮 现在,我想在单击“保存”按钮而不刷新任何活动时,将更新的文本从ActivityC更改为direct ActivityA,而不是我必须执行的操作?你能建议一个简单的方法吗 我在复杂的项目中也有同样的要求,我需要使用api调用在服务器端保存用户位置,并在ActivityA中显示更新的数据 我不明白您为什么需要这个,但您可以通过将A

这里我有3个activity和ActivityA包含显示用户名的文本视图,ActivityB仅包含重定向ActivityC的按钮,ActivityC包含编辑文本和保存按钮

现在,我想在单击“保存”按钮而不刷新任何活动时,将更新的文本从ActivityC更改为direct ActivityA,而不是我必须执行的操作?你能建议一个简单的方法吗


我在复杂的项目中也有同样的要求,我需要使用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中使用此