有没有办法刷新或更新android中的活动?
例如:我有两项活动 Counter1 和 Counter2 活动。在这两项活动中有一个文字视图( tv_count < / strong>)和两个按钮( bt_plus和bt_minus ),分别为加号和减号按钮。当用户点击相应的按钮 count(textview value)时会增加&安培;减少,计数从零开始,现在 count = 4 ,我在模型类中保存计数值,在不完成第一个活动的情况下启动第二个活动。 / p>
现在我正在导航到第二个活动,我可以从4进一步增加计数值,现在 count = 6. 当我点击回来时,当前活动将完成。但计数的值保持不变 4 应该更新为 6 在 Counter1 活动。 根据冲浪,他们说在完成第二项活动之前完成第一项活动。 但我不想完成第一项活动 而是做一些操作 onResume()或onRestart()和onPause()。 解决方案需求:更新第一个活动的计数值,而不必完成并明确调用活动。 这个问题可能已被提出,但我希望有人向我简要介绍一下。
这将非常有帮助,在此先感谢.. 已编辑: 实际上这只是一个单一的值和单个textview实际上我的要求是其他的东西..我正在开发一个餐厅应用程序,其中会有很多产品在列表视图和可展开列表视图中,它位于滑动选项卡中。当用户添加披萨时,当用户在搜索视图中搜索相同的产品时,计数会增加,计数可以增加..增加的计数在模型类中更新,但在滑动标签的列表视图中没有得到更新。 button_next.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent=new Intent(getApplicationContext(), Counter2.class);
startActivity(intent);
}
});
button_back.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}
});
答案 0 :(得分:1)
您可以在 Counter2 onActivityResult
中编写Activity
方法,并将值传递给 Counter1 。
在 Counter1 :
中 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(data.getExtras().containsKey("value")){
txtview.setText(data.getStringExtra("value"));
}
}
在 Counter2 :
中 i.putExtra("value", value);
setResult(RESULT_OK, i);
答案 1 :(得分:0)
要在活动之间发送数据,您应该通过startActivityForResult()
Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1000);
如果要从SecondActivity发回数据
button_back.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent returnIntent = new Intent();
returnIntent.putExtra("result", result);
setResult(RESULT_OK, returnIntent);
finish();
}
});
在你的FirstActivity.class
中@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1000) {
if(resultCode == Activity.RESULT_OK){
String result=data.getStringExtra("result");
// Update your view and model with the returned value
}
}
}
答案 2 :(得分:0)
您可以将计数器活动中的计数值发送到 Counter2 活动。增加它并将其保存在那里。在完成第二项活动时,将更新的计数器值发送回 Counter1 活动。
你可以尝试这样的事情 -
button_next.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent=new Intent(getApplicationContext(), Counter2.class);
intent.putExtra("CURRENT_COUNTER_VALUE", counter);
startActivity(intent);
}
});
在 Counter2 活动中,您可以像这样检索计数器值 -
Bundle extras = getIntent().getExtras();
if (extras != null) {
String counter = extras.getIntExtra("CURRENT_COUNTER_VALUE",0);
}
然后完成 Counter2 活动 -
button_back.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(getApplicationContext(), Counter1.class);
intent.putExtra("CURRENT_COUNTER_VALUE", counter);
startActivity(intent);
finish();
}
});
并在 Counter1 活动的onResume()方法中检索相同的方式。
希望它有所帮助。