我在对话框弹出窗口中有7个textview和7个buton。 对话框弹出窗口的背面有一个按钮,可以增加计数。
我的目标是选择对话框屏幕上的任何按钮,并从对话框屏幕背面的按钮增加计数,然后在对话框屏幕上写入文本。
我可以在所选按钮旁边的文本视图中输入数据,但是当我再次打开x屏幕并想为其他按钮选择数据时,数据将丢失。
这是对话框屏幕(主xml)后面的按钮
btn_yellow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
view.startAnimation(buttonClick);
myDialog.setContentView(R.layout.layout_zikirsec);
TextView txtclose;
txtclose =(TextView) myDialog.findViewById(R.id.txtclose);
final TextView tv_1_sayi=(TextView)myDialog.findViewById(R.id.tv_1_sayi);
TextView tv_2_sayi=(TextView)myDialog.findViewById(R.id.tv_2_sayi);
TextView tv_3_sayi=(TextView)myDialog.findViewById(R.id.tv_3_sayi);
TextView tv_4_sayi=(TextView)myDialog.findViewById(R.id.tv_4_sayi);
TextView tv_5_sayi=(TextView)myDialog.findViewById(R.id.tv_5_sayi);
TextView tv_6_sayi=(TextView)myDialog.findViewById(R.id.tv_6_sayi);
TextView tv_7_sayi=(TextView)myDialog.findViewById(R.id.tv_7_sayi);
final String sayi1=String.valueOf(count);
txtclose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv_1_sayi.setText(sayi1);
myDialog.dismiss();
}
});
if (tv_secilenzikir.getText().toString()=="mytext1"){
tv_1_sayi.setText(sayi1);
}
else if (tv_secilenzikir.getText().toString()=="mytext2"){
tv_1_sayi.setText(sayi1);
tv_2_sayi.setText(sayi1);
}
else if (tv_secilenzikir.getText().toString()=="mytext3"){
tv_3_sayi.setText(sayi1);
}
else if (tv_secilenzikir.getText().toString()=="mytext4"){
tv_4_sayi.setText(sayi1);
}
else if (tv_secilenzikir.getText().toString()=="mytext5"){
tv_5_sayi.setText(sayi1);
}
else if (tv_secilenzikir.getText().toString()=="mytext6"){
tv_6_sayi.setText(sayi1);
}
else if (tv_secilenzikir.getText().toString()=="mytext"){
tv_7_sayi.setText(sayi1);
}
myDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
myDialog.show();
}
});
这是对话框屏幕中的7个按钮之一
public void btn_3_onclk(View view)
{
myDialog.setContentView(R.layout.layout_zikirsec);
tv_secilenzikir.setText("mytext3");
myDialog.dismiss();
TextView txtclose;
txtclose =(TextView) myDialog.findViewById(R.id.txtclose);
txtclose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myDialog.dismiss();
}
});
myDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
};
答案 0 :(得分:2)
您应该创建一个自定义对话框,并将这些文本视图的状态保存在ArrayList中。之后,当要关闭对话框时,请获取此arrayList;当您要再次显示该对话框时,请将此arrayList设置为对白。
有些代码可能会有所帮助:
public class CustomDialog extends Dialog {
private ArrayList<String> states;
public CustomDialog(ArrayList<String> states) {
this.states = states;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
//Initialize your textViews from arrayList here
}
public ArrayList<String> getStates() {
return this.states;
}
}
第二种方法是将这些值保存在sharedPrefs中,以及当您要实例化从SharedPrefs读取的对话框时。