如何将数据发送到AlertDialog [英] How to send data to an AlertDialog
问题描述
我想向Altert对话框发送一些数据,以便确定游戏中的赢家.
这是我的MainActivity.java中的代码:
if (game.comprobarCuatro(Game.JUGADOR)) {
dibujarTablero();
resultadoTextView.setText(R.string.gana_humano);
new AlertDialogFragment().show(getFragmentManager(),"ALERT DIALOG");
return;
}
这是我在AlertDialogFragment.java中的代码,根据收到的输入,我想在其中显示不同的标题.
public class AlertDialogFragment extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final MainActivity main = (MainActivity) getActivity();
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
getActivity());
alertDialogBuilder.setTitle(R.string.fin_del_juego);
alertDialogBuilder.setMessage(R.string.fin_message);
alertDialogBuilder.setPositiveButton("Si",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
main.game.restart();
main.dibujarTablero();
dialog.dismiss();
}
});
alertDialogBuilder.setNegativeButton("No",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
main.finish();
dialog.dismiss();
}
});
return alertDialogBuilder.create();
}
}
我的问题是,我该如何将该信息发送到对话框以在标题中每次显示不同的消息?是否可以将信息发送到警报对话框?
进行了一些研究,有人建议将其保存在首选项中,然后再阅读,我认为这不是一个好的解决方案.
谢谢!
非常简单.像来自Activity
的呼叫
AlertDialogFragment dFragment = new AlertDialogFragment ().newInstance("your Message");
dFragment.show(getSupportFragmentManager(), "Frag");
现在您的AlertDialogFragment
会喜欢
public static AlertDialogFragment newInstance(String msg) {
AlertDialogFragment fragment = new AlertDialogFragment();
Bundle bundle = new Bundle();
bundle.putString("msg", msg);
fragment.setArguments(bundle);
return fragment;
}
,然后像
public static AlertDialogFragment newInstance(String msg) {
AlertDialogFragment fragment = new AlertDialogFragment();
Bundle bundle = new Bundle();
bundle.putString("msg", msg);
fragment.setArguments(bundle);
return fragment;
}
一样在onCreateDialog(..)
中获得此msg
String msg= getArguments().getString("msg");
代码:
public class AlertDialogFragment extends DialogFragment {
public static AlertDialogFragment newInstance(String msg) {
AlertDialogFragment fragment = new AlertDialogFragment();
Bundle bundle = new Bundle();
bundle.putString("msg", msg); // set msg here
fragment.setArguments(bundle);
return fragment;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final MainActivity main = (MainActivity) getActivity();
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
getActivity());
alertDialogBuilder.setTitle(R.string.fin_del_juego);
alertDialogBuilder.setMessage(getArguments().getString("msg"));//get Mesg here
alertDialogBuilder.setPositiveButton("Si",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
main.game.restart();
main.dibujarTablero();
dialog.dismiss();
}
});
alertDialogBuilder.setNegativeButton("No",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
main.finish();
dialog.dismiss();
}
});
return alertDialogBuilder.create();
}
}
I'm want to send some data to an altert dialog, to know identify winner player in my game.
Here is the code in my MainActivity.java:
if (game.comprobarCuatro(Game.JUGADOR)) {
dibujarTablero();
resultadoTextView.setText(R.string.gana_humano);
new AlertDialogFragment().show(getFragmentManager(),"ALERT DIALOG");
return;
}
And here is my code in AlertDialogFragment.java, where I want to display a different Tittle, according to the received input.
public class AlertDialogFragment extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final MainActivity main = (MainActivity) getActivity();
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
getActivity());
alertDialogBuilder.setTitle(R.string.fin_del_juego);
alertDialogBuilder.setMessage(R.string.fin_message);
alertDialogBuilder.setPositiveButton("Si",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
main.game.restart();
main.dibujarTablero();
dialog.dismiss();
}
});
alertDialogBuilder.setNegativeButton("No",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
main.finish();
dialog.dismiss();
}
});
return alertDialogBuilder.create();
}
}
My question is, how do I send that information to the dialog to show in the title a different message each time? Is it possible to send information to an alert dialog?
Doing some research somebody suggested to use save it in the preferences and read it later, which I don't think is a good solution.
Thank you!
It's very easy. like call from Activity
like
AlertDialogFragment dFragment = new AlertDialogFragment ().newInstance("your Message");
dFragment.show(getSupportFragmentManager(), "Frag");
Now in your AlertDialogFragment
do like
public static AlertDialogFragment newInstance(String msg) {
AlertDialogFragment fragment = new AlertDialogFragment();
Bundle bundle = new Bundle();
bundle.putString("msg", msg);
fragment.setArguments(bundle);
return fragment;
}
and then get this msg
in onCreateDialog(..)
like
String msg= getArguments().getString("msg");
Code:
public class AlertDialogFragment extends DialogFragment {
public static AlertDialogFragment newInstance(String msg) {
AlertDialogFragment fragment = new AlertDialogFragment();
Bundle bundle = new Bundle();
bundle.putString("msg", msg); // set msg here
fragment.setArguments(bundle);
return fragment;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final MainActivity main = (MainActivity) getActivity();
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
getActivity());
alertDialogBuilder.setTitle(R.string.fin_del_juego);
alertDialogBuilder.setMessage(getArguments().getString("msg"));//get Mesg here
alertDialogBuilder.setPositiveButton("Si",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
main.game.restart();
main.dibujarTablero();
dialog.dismiss();
}
});
alertDialogBuilder.setNegativeButton("No",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
main.finish();
dialog.dismiss();
}
});
return alertDialogBuilder.create();
}
}
这篇关于如何将数据发送到AlertDialog的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!