所以我有一种情况,我从Intent extras填充TextView,然后允许用户编辑它。当用户点击编辑按钮时,EditText会出现,文本显示为TextView。
然后用户可以输入新值。
最后,当按下保存按钮时,新值不会保存,而是仍显示旧值。
这是我的代码:
Bundle extras = getIntent().getExtras();
if (extras != null){
textViewNazivTodoaDetails.setText(extras.getString("naslov"));
textViewDatumTodoaDetails.setText(extras.getString("datum"));
final int id = extras.getInt("id");
String oldText = extras.getString("naslov");
editTextDetaljnoIspravljanje.setText(oldText);
}
final String newText = editTextDetaljnoIspravljanje.getText().toString();
buttonDetaljnoIspravljanjeDone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
textViewNazivTodoaDetails.setText(newText);
}
});
}
我做错了什么?
答案 0 :(得分:1)
您正在使用以下行清楚地将文本设置回onClick
内的旧文本。
textViewNazivTodoaDetails.setText(newText);
你在onClick
内不需要这一行。除此之外,您应该使用代码将新值保存到您想要保存的位置。
您在初始化newText
之前调用的代码行在编辑之前调用,并包含与oldText
相同的值。因此,您再次看到旧文本。
您的文字视图已包含新输入的文字。