java - 想要在整个应用程序中保存用户对角色的选择

标签 java android

这是我的第一个应用程序,我的编程知识几乎为零。但是,当应用程序打开时,系统会要求用户从 ScrollView 中选择一个字符,他们将在应用程序的其余部分中使用该字符。我如何让这个选定的角色显示在其他 Activity 屏幕上?

以下是选择角色 Activity 的 xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_choose_pet"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.mc.cibi.ChoosePet">

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="textPersonName"
    android:text="Please Choose Your CiBi Pet!"
    android:ems="10"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="522dp"
    android:gravity="center"/>

<HorizontalScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginTop="12dp">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:weightSum="1">

      <!-- <ImageButton
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:background="@drawable/gifraffe"
            android:layout_weight="0.01"
            android:id="@+id/giraffe"
            android:onClick="giraffebtn"/>-->

        <ImageButton
              android:layout_width="300dp"
              android:layout_height="300dp"
              android:background="@drawable/goat"
              android:id="@+id/goat"
              android:onClick="goatbtn"
            android:layout_gravity="center"/>

        <Space
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_weight="1" />

        <ImageButton
            android:layout_width="300dp"
            android:layout_height="300dp"
            android:background="@drawable/monkey"
            android:id="@+id/monkey"
            android:onClick="monkeybtn"
            android:layout_gravity="center"
           />

        <Space
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_weight="1" />

        <ImageButton
            android:layout_width="300dp"
            android:layout_height="300dp"
            android:background="@drawable/moose"
            android:id="@+id/moose"
            android:onClick="moosebtn"
            android:layout_gravity="center"/>
        <Space
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_weight="1" />

        <ImageButton
            android:layout_width="300dp"
            android:layout_height="300dp"
            android:background="@drawable/owl"
            android:id="@+id/owl"
            android:onClick="owlbtn"
            android:layout_gravity="center"/>

        <Space
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_weight="1" />

        <ImageButton
            android:layout_width="300dp"
            android:layout_height="300dp"
            android:background="@drawable/rhino"
            android:id="@+id/rhino"
            android:onClick="rhinobtn"
            android:layout_gravity="center"/>


    </LinearLayout>





</HorizontalScrollView>

</RelativeLayout>

我希望用户能够在应用程序的 future 屏幕上看到他们选择的图像按钮的图像。感谢所有帮助!

最佳答案

既然你说你对编程完全陌生,我将在这里介绍很多基本细节。

将数据发送到另一个 Activity 很容易 - 当您创建用于启动它的 Intent 时,您可以将数据添加为额外的。

接下来的问题是要添加什么。通常,要保存这样的数据,您需要定义一个字符类。该类将保存有关角色的所有重要信息 - 名称、图像 URL 等。它还包含您可以对该角色执行的操作 - 可能是更改名称的函数,或者设置其父级的名称,或者执行您需要对其执行的任何其他操作。这种技术称为面向对象编程。您通常会为每个按钮创建此类的一个实例。然后,当按下其中一个按钮时,您就会存储该实例。稍后,当您启动下一个 Activity 时,如我之前所说,将其添加到 Intent 中。

请记住,要通过 Intent 传递类,它需要实现 Parcelable 或 Serialized。我建议只使用 Serialized - 它有点慢,但类足够小,无关紧要,而且更容易实现(通常您甚至不需要重写任何函数)。

关于java - 想要在整个应用程序中保存用户对角色的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42152282/

相关文章:

java - 在 Java 计算器的按钮按下时获得声音的最佳方法?

Java - C3P0 持有的连接数与 MySQL 中的 hibernate 连接数不匹配

android - 不记录 Google Analytics Tagmanager PushEvent

java - 让java显示正确的减量

android - SkMaps 不使用侦察音频

java - 为 RecyclerView 创建适配器后未检查分配警告

java - 是否有 Java API 可以获取 VM 参数?

java - 在我的项目中构建和重用 android 开源 Dialer 源代码

java - 使用java备份mysql数据库

java - 如何上传带有 Google Drive REST API v2 链接的文件