Java 如何创建一个大的选择屏幕?
我的应用程序跟踪牌桌上的玩家如何玩。我给我的用户提供了一个选项,可以将最多50个玩家的统计数据以“玩家”对象的形式保存在SharedReferences的JSON数组中。事实证明,允许用户选择和加载其中一个播放器是困难的 alertDialog看起来很小,一个新的活动对于本质上只是一个大菜单来说似乎有点过火,我担心将我的对象传递给它会很困难。一个可视翻转器听起来很有趣,但我不知道它是否合适Java 如何创建一个大的选择屏幕?,java,android,Java,Android,我的应用程序跟踪牌桌上的玩家如何玩。我给我的用户提供了一个选项,可以将最多50个玩家的统计数据以“玩家”对象的形式保存在SharedReferences的JSON数组中。事实证明,允许用户选择和加载其中一个播放器是困难的 alertDialog看起来很小,一个新的活动对于本质上只是一个大菜单来说似乎有点过火,我担心将我的对象传递给它会很困难。一个可视翻转器听起来很有趣,但我不知道它是否合适 我该怎么做呢?用几十个按钮填满屏幕是我真正想要做的。我同意为这项工作创建一个新的活动是一种过火的行为。解决
我该怎么做呢?用几十个按钮填满屏幕是我真正想要做的。我同意为这项工作创建一个新的活动是一种过火的行为。解决这一问题的一种方法是使用“按钮”填充
GridView
,用户可以通过单击从网格中选择一个按钮。问题是在何处/如何显示此网格
在我看来,ViewFlipper是一个不错的选择。方法是将现有布局放置在视图翻转器中,然后将GridView放置在现有布局之后的视图翻转器中:
<ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/flipper">
<LinearLayout ...>
<!-- this is where your main layout goes -->
</LinearLayout>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/player_select"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</ViewFlipper>
这将有效地隐藏主布局并显示网格。在你的监听器
的末尾
ViewFlipper flip = (ViewFlipper)flip.findViewById(R.id.flipper);
flip.showPrevious();
这将隐藏栅格视图并导航回主布局。您可以随意为过渡添加任何您喜欢的动画(例如,3G flip动画看起来特别好)。我同意为过渡创建一个新的活动是一种过分的做法。解决这一问题的一种方法是使用“按钮”填充
GridView
,用户可以通过单击从网格中选择一个按钮。问题是在何处/如何显示此网格
在我看来,ViewFlipper是一个不错的选择。方法是将现有布局放置在视图翻转器中,然后将GridView放置在现有布局之后的视图翻转器中:
<ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/flipper">
<LinearLayout ...>
<!-- this is where your main layout goes -->
</LinearLayout>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/player_select"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</ViewFlipper>
这将有效地隐藏主布局并显示网格。在你的监听器
的末尾
ViewFlipper flip = (ViewFlipper)flip.findViewById(R.id.flipper);
flip.showPrevious();
这将隐藏栅格视图并导航回主布局。您可以随意为过渡添加任何您喜欢的动画(例如,3G flip动画看起来特别漂亮)。尝试
自动完成文本视图。开始键入其中一个名称,然后弹出所有可能匹配项的列表
截图来自:
尝试一个自动完成文本视图
。开始键入其中一个名称,然后弹出所有可能匹配项的列表
截图来自:
我和一个朋友去了。它结合了自动完成的过滤和整洁,同时还显示了名称,因此用户不必像ViewFlipper解决方案那样记住它们
感谢这两个答案,它们都是很好的解决方案,帮助我找到了我需要的解决方案,将两者结合起来
“自动完成”具有搜索的优势,因此我可以扩大用户可以保存到我心中内容的玩家数量,它看起来也很整洁,但不能很容易地看到整个列表,这对于扑克玩家来说是必要的,因为你在写笔记时给出的名字很少是你的同伴的名字,而是基于他们的外表/打牌风格的即兴昵称。因此,使用autocomplete,用户将不得不记住他们给的昵称,超过50名玩家和可能相隔数月的玩家将被证明是棘手的
Alek Gs解决方案可以避免这个问题,但不适合大量的名称或长名称,因为按钮的大小不固定。它结合了自动完成的过滤和整洁,同时还显示了名称,因此用户不必像ViewFlipper解决方案那样记住它们
感谢这两个答案,它们都是很好的解决方案,帮助我找到了我需要的解决方案,将两者结合起来
“自动完成”具有搜索的优势,因此我可以扩大用户可以保存到我心中内容的玩家数量,它看起来也很整洁,但不能很容易地看到整个列表,这对于扑克玩家来说是必要的,因为你在写笔记时给出的名字很少是你的同伴的名字,而是基于他们的外表/打牌风格的即兴昵称。因此,使用autocomplete,用户将不得不记住他们给的昵称,超过50名玩家和可能相隔数月的玩家将被证明是棘手的
Alek Gs解决方案可以避免这个问题,但不适合大量名称或长名称,因为按钮的大小不固定