如何在对话框弹出窗口中保存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值?的主要内容,如果未能解决你的问题,请参考以下文章