我在 android 中尝试对话框,我遇到了一些问题。
我有两个类,一个是扩展 Activity 的 MainActivity,另一个是扩展 DialogFragment 的 MyDialog。它来自 MainActivity 中的一个新 MyDialog 对象,我在该对象上调用了一个 show 方法来显示对话框。
现在,在选择了任何选项后,我尝试了多种方法将 setText 设置为 TextView,但我无法使用 findViewById 方法,因为那是来自 Activity 并且我没有在 MyDialog 中扩展 Activity。试图创建一个新的 Activity 对象(只是尝试)并从那里使用 findViewById 方法但无济于事。
我还尝试在创建 MyDialog 对象之前在 MainActivity 的 OnCreate 方法中创建一个公共 TextView,并尝试从其他类访问和 setText,但它也不起作用。请帮助,从 DialogFragment 附带的 setPositive、setNegative 和 setNeutral 方法中选择对话框上的选项后,如何设置文本。
这是 MyDialog 类的一些摘录,只是我为对话框选项设置标题等的部分:
@Override public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage(R.string.dialogMessage).setPositiveButton(R.string.dialogacceptmsg, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
//setting text and color to text in a result textview
message.setText("You are going to MARS with Sir Richard Branson");
/*v= new Activity();//creating a new activity to find the textview
message=(TextView)v.findViewById(R.id.textView1);
message.setText("You are going to MARS with Sir Richard Branson");
message.setTextColor(Color.MAGENTA);*/
}
}).setNegativeButton(R.string.dialogcancelmsg,new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
//setting text and color to text in a result textview
message.setText("Your ticket will be sold to Justin Bieber");
/* v= new Activity();//creating a new activity to find the textview
message = (TextView) v.findViewById(R.id.textView1);
message.setText("Your ticket will be sold to Justin Bieber");
message.setTextColor(Color.RED);*/
}
}).setNeutralButton("Not sure",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// setting text and color to text in a result textview
message.setText("Keeping it on standby");
/*v=new Activity();
message =(TextView) v.findViewById(R.id.textView1);
message.setText("Keeping it on standby");
message.setTextColor(Color.BLUE);*/
}
}).setTitle(R.string.dialogTitle) ;
return builder.create();
}