Как сохранить текстовое значение в диалоговом окне? - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть 7 textview и 7 кнопок в всплывающем окне. В задней части всплывающего окна есть одна кнопка, которая увеличивает количество.

Моя цель состоит в том, чтобы выбрать любую кнопку на диалоговом экране и увеличить счетчик с кнопки на задней части диалогового окна и написать текст на диалоговом экране.

Я могу ввести данные в текстовом окне рядом с выбранной кнопкой, но когда я снова открываю экран 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 голосов
/ 11 сентября 2018

Вы должны создать собственный диалог и сохранить состояние этих текстовых представлений в 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.

...