草庐IT

java - 嵌入了 EditText 的 Android 单选按钮组

coder 2023-12-27 原文

我的问题是我想要一个具有 3 个单选按钮的单选组,使用下面的方案。 三个选择是: 1.【】男 2.【】女 3. []自定义:( self 描述的身份)

但是,问题是我希望用户将他们 self 描述的身份输入到 EditText 中以供我检索。

所以下面的代码来 self 的 XML 页面,一些元素被“####”挡住了。

<RadioGroup
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_below="####"
    android:id="@+id/male_female_custom_choice"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true">
    <RadioButton android:id="@+id/radio_button_male"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/radio_button_male"
        android:checked="true" />
    <RadioButton android:id="@+id/radio_button_female"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/radio_button_female"
        android:checked="false" />
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="####"
        android:weightSum="1">
            <RadioButton
                android:id="@+id/radio_button_custom"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/radio_button_custom"
                android:checked="false" />
            <EditText
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:inputType="text"
                android:ems="10"
                android:id="####"
                android:hint="####"
                android:focusableInTouchMode="true"
                android:gravity="center"
                android:layout_weight="1.05"
                android:textSize="14sp" />
            <TextView
                android:layout_width="42dp"
                android:layout_height="43dp"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="####"
                android:id="####"
                android:singleLine="true"
                android:gravity="center"
                android:layout_marginLeft="0dp"
                android:textColor="#000000" />
    </LinearLayout>
</RadioGroup>

如您所见,我尝试使用 LinearLayout 来隔离自定义选项。 然而,存在意想不到的和不期望的副作用。 1.除了其他2个预定义的性别外,还可以选择自定义选项。 2.自定义选项不能单独选择。

在 Activity 的实际 Java 文件中,我有以下代码:

// button, radio button, editText, and Spinner fields
public EditText mEdit;
public RadioButton rButton;
public RadioGroup rSexGroup;
rSexGroup = (RadioGroup)findViewById(R.id.male_female_custom_choice);
// get selected radio button from RadioGroup
int selectedId = rSexGroup.getCheckedRadioButtonId();
// find radio button by returned id
rButton = (RadioButton)findViewById(selectedId);
// assign gender based on id of radio button
if (selectedId == 1) {
    pat.gender = "male";
}
if (selectedId == 2) {
    pat.gender = "female";
}
if (selectedId == 3) {
    mEdit = (EditText)findViewById(R.id.####);
    pat.gender = (mEdit.getText().toString());
}

由于我对 Java 有点生疏,所以我可能会遇到一些非常新的错误。请指教。

再一次,我正在寻找一种方法来获取一组 3 个 RadioButton,每个 RadioButton 单独一行,最后一个 RadioButton 旁边有一个 EditText,我从中获取所需的信息。

编辑:这是我希望它看起来像的图片: ( http://i68.tinypic.com/ao2oow.png )

不幸的是,我需要 10 个声望才能发布图片。 :(

Mohit 的回答在与自定义输入不同的行上给出了 EditText。 ( http://i63.tinypic.com/68u88x.png )

请注意,EditText 的方向与自定义相邻,而不是在下方。对于没有明确说明我想要的内容,我深表歉意。

最佳答案

  1. 因为 selectedId 不会是 1,2 或 3....调试它你会得到值..

The custom option cannot be selected on its own.

  1. LinearLayout 中删除您的第三个 RadioButton 并替换下面的第二个 RadioButton 并将您的 EditText TextViewLinearLayout..
  2. 里面

在你的监听器上获取那个 RadioButtongetCheckedRadioButtonIdgetText() 并相应地检查它......

我不知道你的任务是什么,但这里是如何让所有三个 RadioButton 工作并获得自定义文本....

XML...

更新

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.ex.MainActivity" >

 <RadioGroup
    android:id="@+id/male_female_custom_choice"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <RadioButton
        android:id="@+id/radio_button_male"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:text="Male" />

    <RadioButton
        android:id="@+id/radio_button_female"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="false"
        android:text="FeMale" />

    <RadioButton
        android:id="@+id/radio_button_custom"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="false"
        android:text="Custom" />
</RadioGroup>

 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/male_female_custom_choice"
    android:layout_toRightOf="@+id/male_female_custom_choice"
    android:orientation="horizontal"
    android:weightSum="1" >

    <EditText
        android:id="@+id/edit"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight=".8"
        android:ems="10"
        android:focusableInTouchMode="true"
        android:gravity="center"
        android:hint="aa"
        android:inputType="text"
        android:textSize="14sp" />

    <TextView
        android:id="@+id/text"
        android:layout_width="42dp"
        android:layout_height="43dp"
        android:layout_marginLeft="0dp"
        android:layout_weight=".2"
        android:gravity="center"
        android:singleLine="true"
        android:text="aaa"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#000000" />
 </LinearLayout>

 <Button
    android:id="@+id/but"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/male_female_custom_choice"
    android:text="Get" />

</RelativeLayout>

.java 文件..

public class MainActivity extends Activity {

 public EditText mEdit;
 public RadioButton rButton;
 public RadioGroup rSexGroup;
 public Button but;
 public String str = "";

 @Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    rSexGroup = (RadioGroup)findViewById(R.id.male_female_custom_choice);
    but= (Button) findViewById(R.id.but);

    but.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            int selectedId = rSexGroup.getCheckedRadioButtonId();
            rButton = (RadioButton)findViewById(selectedId);
            if (rButton.getText().toString().equals("Male")) {
                str = "Male";
            }
            if (rButton.getText().toString().equals("FeMale")) {
                str = "FeMale";
            }
            if (rButton.getText().toString().equals("Custom")) {
                mEdit = (EditText)findViewById(R.id.edit);
                str = mEdit.getText().toString();
            }
            Toast.makeText(MainActivity.this, str, Toast.LENGTH_SHORT).show();
        }
    });
  }
}

您还可以设置 LinearLayout 的可见性,使其仅在选中自定义时可见....

希望对你有帮助

关于java - 嵌入了 EditText 的 Android 单选按钮组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35307543/

有关java - 嵌入了 EditText 的 Android 单选按钮组的更多相关文章

  1. java - 等价于 Java 中的 Ruby Hash - 2

    我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/

  2. java - 从 JRuby 调用 Java 类的问题 - 2

    我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www

  3. java - 我的模型类或其他类中应该有逻辑吗 - 2

    我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我

  4. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  5. Observability:从零开始创建 Java 微服务并监控它 (二) - 2

    这篇文章是继上一篇文章“Observability:从零开始创建Java微服务并监控它(一)”的续篇。在上一篇文章中,我们讲述了如何创建一个Javaweb应用,并使用Filebeat来收集应用所生成的日志。在今天的文章中,我来详述如何收集应用的指标,使用APM来监控应用并监督web服务的在线情况。源码可以在地址 https://github.com/liu-xiao-guo/java_observability 进行下载。摄入指标指标被视为可以随时更改的时间点值。当前请求的数量可以改变任何毫秒。你可能有1000个请求的峰值,然后一切都回到一个请求。这也意味着这些指标可能不准确,你还想提取最小/

  6. 【Java 面试合集】HashMap中为什么引入红黑树,而不是AVL树呢 - 2

    HashMap中为什么引入红黑树,而不是AVL树呢1.概述开始学习这个知识点之前我们需要知道,在JDK1.8以及之前,针对HashMap有什么不同。JDK1.7的时候,HashMap的底层实现是数组+链表JDK1.8的时候,HashMap的底层实现是数组+链表+红黑树我们要思考一个问题,为什么要从链表转为红黑树呢。首先先让我们了解下链表有什么不好???2.链表上述的截图其实就是链表的结构,我们来看下链表的增删改查的时间复杂度增:因为链表不是线性结构,所以每次添加的时候,只需要移动一个节点,所以可以理解为复杂度是N(1)删:算法时间复杂度跟增保持一致查:既然是非线性结构,所以查询某一个节点的时候

  7. 【Java入门】使用Java实现文件夹的遍历 - 2

    遍历文件夹我们通常是使用递归进行操作,这种方式比较简单,也比较容易理解。本文为大家介绍另一种不使用递归的方式,由于没有使用递归,只用到了循环和集合,所以效率更高一些!一、使用递归遍历文件夹整体思路1、使用File封装初始目录,2、打印这个目录3、获取这个目录下所有的子文件和子目录的数组。4、遍历这个数组,取出每个File对象4-1、如果File是否是一个文件,打印4-2、否则就是一个目录,递归调用代码实现publicclassSearchFile{publicstaticvoidmain(String[]args){//初始目录Filedir=newFile("d:/Dev");Datebeg

  8. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  9. java - 为什么 ruby​​ modulo 与 java/other lang 不同? - 2

    我基本上来自Java背景并且努力理解Ruby中的模运算。(5%3)(-5%3)(5%-3)(-5%-3)Java中的上述操作产生,2个-22个-2但在Ruby中,相同的表达式会产生21个-1-2.Ruby在逻辑上有多擅长这个?模块操作在Ruby中是如何实现的?如果将同一个操作定义为一个web服务,两个服务如何匹配逻辑。 最佳答案 在Java中,模运算的结果与被除数的符号相同。在Ruby中,它与除数的符号相同。remainder()在Ruby中与被除数的符号相同。您可能还想引用modulooperation.

  10. java - Ruby 相当于 Java 的 Collections.unmodifiableList 和 Collections.unmodifiableMap - 2

    Java的Collections.unmodifiableList和Collections.unmodifiableMap在Ruby标准API中是否有等价物? 最佳答案 使用freeze应用程序接口(interface):Preventsfurthermodificationstoobj.ARuntimeErrorwillberaisedifmodificationisattempted.Thereisnowaytounfreezeafrozenobject.SeealsoObject#frozen?.Thismethodretur

随机推荐