我的应用中有很多布局的Textview ID。当alertDialog对用户显示时,我希望他输入的值更新Textview值。 我已经尝试了下面的代码,但是当我进入其他布局时,TextView不会更新。
请给我一个解决方案。
mlnCurrency = (RelativeLayout) findViewById(R.id.lncurrency);
mlnCurrency.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mtvdevicelabel = (TextView) findViewById(R.id.tvdevicelabel);
AlertDialog.Builder builder = new AlertDialog.Builder(SettingActivity.this);
builder.setTitle("Title");
final EditText input = new EditText(SettingActivity.this);
input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
builder.setView(input);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
m_Text = input.getText().toString();
mtvdevicelabel.setText(m_Text );
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.show();
}
}
);
答案 0 :(得分:0)
这是因为您的片段在其他UIThread中运行与您的Activity完全不同,您应该在更新文本时使用调用delegateMethod的委托模式。你也可以使用EventBus或Otto,或者使用RxJava for android。
答案 1 :(得分:0)
试试这个:
alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
changeName();
}
);
public void changeName()
{
//DO update
}