Android 对话框:我应该使用 DialogFragment 还是单独的 Activity 来处理简单的输入框
Posted
技术标签:
【中文标题】Android 对话框:我应该使用 DialogFragment 还是单独的 Activity 来处理简单的输入框【英文标题】:Android dialogs: Should I use a DialogFragment or a separate activity to handle a simple input box 【发布时间】:2016-07-30 12:31:46 【问题描述】:我正在开发一个简单的 android 益智游戏。开始时,通过使用 PRNG 生成随机初始游戏状态来确定游戏状态。但是,我想实现一个种子系统,用户可以在其中输入一个字母数字字符串,然后它将充当生成游戏初始状态的 PNRG 的种子。然后,用户可以与他们的朋友分享种子,在他们之间玩同一个棋盘。
为了做到这一点,我需要显示游戏的 Activity 显示一个包含 EditText 和 OK 按钮的对话框,以便用户可以输入种子。然后对话框应将输入的字符串发送到游戏活动,以便它可以使用它来生成棋盘。根据我的阅读,我似乎可以使用带有对话框主题的 Activity 或 DialogFragment。
虽然我可以创建一个以对话框为主题的活动,但为了这个简单的目的而单独创建一个活动似乎有点过头了,而且我找不到从 DialogFragment 向游戏活动返回字符串的方法。
哪种方式效果更好,单独的活动或 DialogFragment。如果是 DialogFragment,将 String 返回到游戏 Activity 的最佳方式是什么?
提前感谢您的帮助。
【问题讨论】:
在对话框中,您可以在变量的编辑文本中输入字符串并将该变量设为公共静态,以便轻松访问 【参考方案1】:你可以试试这个简单的安卓对话框popup library。在您的活动中使用它非常简单。
Pop.on(this)
.with()
.title(R.string.title)// you can skip if not needed
.layout(R.layout.custom_pop)// your custom layout
.when(new Pop.Yah() // positive button
@Override
public void clicked(DialogInterface dialog, View view)
Toast.makeText(getBaseContext(), "Yah button clicked", Toast.LENGTH_LONG).show();
)
.when(new Pop.Nah() // negative button, you can skip if not neeed
@Override
public void clicked(DialogInterface dialog, View view)
Toast.makeText(getBaseContext(), "Nah button clicked", Toast.LENGTH_LONG).show();
).show();
【讨论】:
以上是关于Android 对话框:我应该使用 DialogFragment 还是单独的 Activity 来处理简单的输入框的主要内容,如果未能解决你的问题,请参考以下文章