java - 如何创建一个大的选择屏幕?

标签 java android

我的应用程序跟踪扑克 table 上玩家的玩法。我为用户提供了以“玩家”对象的形式保存最多 50 个玩家统计信息的选项,该对象存储在共享首选项中的 JSON 数组中。事实证明,允许用户选择并加载其中一个播放器是很困难的。

alertDialog 似乎很小,对于本质上只是一个大菜单的新 Activity 来说似乎有点过分,我担心将我的对象传递给它会很困难。 viewFlipper 听起来很有趣,但我不知道它是否合适。

我应该怎样做呢?我真正想做的就是用几十个按钮填满屏幕。

最佳答案

我同意为此创建一个新 Activity 有点矫枉过正。解决这个问题的一种方法是使用“按钮”填充 GridView - 用户可以通过单击从网格中选择一个按钮。问题是在哪里/如何显示这个网格。

在我看来,ViewFlipper 是一个不错的选择。您将采取的方法是将现有布局放置在 View 翻转器中,然后将 GridView 放入现有布局之后的 ViewFlipper 中:

<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>

然后在您的 Activity 中为 GridView 设置适配器和 OnItemClickListener - 在单击某个项目时执行某些操作。最后,某个地方(在主布局中或在选项菜单中或其他地方)提供了一些东西来显示此 GridView 。在该操作的处理程序代码中,您将有类似的内容

ViewFlipper flip = (ViewFlipper)flip.findViewById(R.id.flipper);
flip.showNext();

这将有效地隐藏您的主布局并显示网格。在 OnItemClickListener 的末尾,您将拥有

ViewFlipper flip = (ViewFlipper)flip.findViewById(R.id.flipper);
flip.showPrevious();

这将隐藏 GridView 并导航回主布局。请随意添加任何您喜欢的过渡动画(例如 3G 翻转动画看起来特别好)。

关于java - 如何创建一个大的选择屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10125155/

相关文章:

java - 为什么当方法重载时多态性并不重要?

java - 在 Java 中使用 Batik 检查和删除 SVG 中的属性

android - 是否可以在某些屏幕尺寸上支持两个方向,而在其他屏幕尺寸上不支持?

java - android downloadManager如何做http基本认证

java - 数据流 : string to pubsub message

java同步静态方法

java - 排队多个下载,寻找生产者消费者 API

安卓 : Create a button with border bottom

android - WifiManager.is5GHzBandSupported() 在撒谎?

android - Jetpack Compose – 我需要使用哪个依赖项才能使用状态委托(delegate)?