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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在对话框弹出窗口中保存textview值?相关的知识,希望对你有一定的参考价值。

我在对话框弹出窗口中有7个textview和7个按钮。对话框弹出窗口后面有一个按钮可以增加计数。

我的目标是选择对话框屏幕上的任何按钮,并从对话框屏幕背面的按钮增加计数,并在对话框屏幕上写入文本。

我可以在我选择的按钮旁边的textview中输入数据,但是当我再次打开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));

};
答案

您应该创建一个自定义对话框,并将这些文本视图的状态保存在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读取的对话框时。

以上是关于如何在对话框弹出窗口中保存textview值?的主要内容,如果未能解决你的问题,请参考以下文章

JSP页面弹出模态窗口

警报对话框中的 TextView 未居中或未格式化

Kivy:弹出窗口不显示

如何让保存到 Excel 对话框弹出?

JAVA GUI问题。如何触动按钮后弹出文件浏览器和文件名选择框,选择保存目录?

C# Winform怎么弹出保存对话框?