Пожалуйста, помогите. Я пробовал все, но каждый раз терпел неудачу. Я создаю приложение для Android, где мне нужно программно обновлять текст текстового поля в диалоговом окне. Это диалоговое окно создается с использованием настраиваемого макета. Проводка кода ниже. Пожалуйста, помогите обновить значение tv1 до «Это новый текст». В тексте XML-макета был установлен «старый текст». После запуска этой программы значение tv1 в 'dialogabt' по-прежнему рассматривается как «старый текст».Не удалось обновить текст TextView в настраиваемом диалоговом окне
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button b1 = (Button) findViewById(R.id.b1);
//generating first dialog box
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Dialog dialog1 = new Dialog(MainActivity.this);
dialog1.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog1.setContentView(R.layout.setings);
dialog1.show();
}
});
}
//function to generate second dialogbox and update textview's text in it
public void abtit(View view) {
Dialog dialogabt = new Dialog(this);
dialogabt.requestWindowFeature(Window.FEATURE_NO_TITLE);
LayoutInflater inflater = this.getLayoutInflater();
View dialogView = inflater.inflate(R.layout.custom2, null);
TextView tv1 = (TextView) dialogView.findViewById(R.id.firstapp);
System.out.println("Going to set new value");
tv1.setText("Its new text");
System.out.println("done setting new value");
dialogabt.setContentView(R.layout.custom2);
dialogabt.show();
}
}
setings.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/set3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="About app"
android:onClick="abtit"
/>
</RelativeLayout>
custom2.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="315dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/custom_alert2"
android:orientation="vertical" >
<TextView
android:id="@+id/firstapp"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:onClick="openapp2"
android:text="old text"
/>
</RelativeLayout>
Единственная проблема, которую я нашел с вашим кодом является то, что вы не вызывая метод, который создает второе диалоговое окно. Таким образом, диалоговое окно не создается. – Aradhna
Второе диалоговое окно создается функцией abtit(). Его упоминается в атрибуте onclick layouts.xml. –