我在一个 Activity 中创建动态 TextView ,其中包含一些由网络服务返回的字段。当用户想要编辑一些数据时,他被送到另一个 Activity 。当他单击“后退”按钮时,我想更新上一个 Activity 中的数据,但我不知道正确的方法。我使用 onRestart 方法而不是 onResume
这是我的代码:
我的第一个显示数据的 Activity :
public class QueryActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.query);
new WSData() {
@Override
public void onPostExecute(final ArrayList<ArrayList<String>> result) { int nbTextView = result.size();
TextView[] textViewArray = new TextView[nbTextView];
for (int i = 0; i < nbTextView; i++) {
// Horizontal Layout to have the accountName and a button to
// edit on the same line
LinearLayout editLayout = new LinearLayout(
QueryActivity.this);
Button edit = new Button(QueryActivity.this);
edit.setBackgroundDrawable(getResources().getDrawable(
R.drawable.editer));
editLayout.removeAllViewsInLayout();
editLayout.setOrientation(LinearLayout.HORIZONTAL);
dynamicWindow.addView(editLayout,
new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
textViewArray[i] = new TextView(QueryActivity.this);
// retrieve every field from the result
final String accountId = result.get(i).get(0);
final String accountName = result.get(i).get(1);
final String phone = result.get(i).get(2);
final String industry = result.get(i).get(3);
final String website = result.get(i).get(4);
// display only the accountName
textViewArray[i].setText(accountName);
textViewArray[i].setTextColor(0xFFFFFFFF);
textViewArray[i].setGravity(Gravity.CENTER_VERTICAL);
textViewArray[i].setVisibility(View.VISIBLE);
edit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(QueryActivity.this,
EditAccountActivity.class);
startActivity(intent);
}
});
}.execute(sessionName, null, "getAccountInfo");
}
@Override
public void onRestart() {
super.onRestart();
}
我的其他 Activity ,我想在点击“返回”时更新我的数据:
public class EditAccountActivity extends Activity {
back.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
最佳答案
When he clicks on the "back" button i want to update data in the previous activity
1- 使用 startActivityForResult() 启动 Activity 2。
2 在 2nd Activity 中覆盖返回键事件并设置 intent 和 Result_OK
3- 在第一个 Activity 的 onActivityForResult 中获取数据
关于android - 当用户在另一个 Activity 中编辑了某些字段时更新先前 Activity 中的数据,onRestart?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11210083/