如何在对话框弹出窗口中保存textview值?

时间:2018-09-11 16:30:06

标签: android button dialog textview save

我在对话框弹出窗口中有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));

};

1 个答案:

答案 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读取的对话框时。