我创建了登录表单,登录成功时。它将转到MainActivity.java
在MainActivity
中有button
进入帐户设置,intent
发送用户名和密码。像这样:
editu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MainActivity.this, EditUser.class);
i.putExtra("id",mUser.getId());
i.putExtra("username",mUser.getUsername());
i.putExtra("pass",mUser.getPassword());
startActivity(i);
//finish();
}
});
并在EditUser.class
中Bundle
获取以下信息:
Bundle args = getIntent().getExtras();
但是当我完成帐户管理后,我想通过home button
上的标签返回主页(MainActivity) - (下面链接中的图片)。它将退出应用程序。
我意识到因为MainActivity
if (null == args) {
Toast.makeText(this, getString(R.string.welcome_error_message),
Toast.LENGTH_SHORT).show();
finish();
}
但我不知道,如何将intent
从EditUser.class
发送回MainActivity.class
我尝试了以下代码,但它没有用。 (EditUser上的代码)
public void onBackPressed() {
Intent i = new Intent(this,MainActivity.class);
i.putExtra(User.Column.ID,mUser.getId());
i.putExtra(User.Column.USERNAME,mUser.getUsername());
i.putExtra(User.Column.PASSWORD,mUser.getPassword());
startActivity(i);
}
答案 0 :(得分:1)
您必须使用onActivityResult()。 将数据设置为intent并通过单击后退按钮单击传递它。
答案 1 :(得分:1)
首先,您需要使用MainActivity
来呼叫startActivityForResult(intent, requestCode);
。然后你会喜欢以下代码:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
// Do something
}
}
编辑:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pedido);
// You have to enable the home button on action bar doing the following
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
}
然后你也必须这样做:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
finish();
return true;
}
else {
return MenuActionBar.optionsItemSelected(this, null, item)
? true : super.onOptionsItemSelected(item);
}
}