Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如果我按下线性布局,如何触发radioButton进行检查_Android_Android Layout_Radio Button_Android Linearlayout - Fatal编程技术网

Android 如果我按下线性布局,如何触发radioButton进行检查

Android 如果我按下线性布局,如何触发radioButton进行检查,android,android-layout,radio-button,android-linearlayout,Android,Android Layout,Radio Button,Android Linearlayout,如果我在其他位置(不是单选按钮)按下单选按钮,但在1线性布局内的图像、文本视图等上按下,如何使单选按钮被选中 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layo

如果我在其他位置(不是单选按钮)按下单选按钮,但在1线性布局内的图像、文本视图等上按下,如何使单选按钮被选中

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <LinearLayout
        android:id="@+id/layout_1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <ImageView
            android:id="@+id/card_balance"
            android:layout_width="150dp"
            android:layout_height="150dp"
            android:layout_gravity="center_vertical"
            android:paddingLeft="20dp" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:paddingLeft="10dp"
            android:textColor="@color/dc_white" />

        <RadioGroup
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:gravity="right"
            android:paddingRight="20dp">

            <RadioButton
                android:id="@+id/radio_button_payment"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </RadioGroup>

    </LinearLayout>
    
    
</RelativeLayout>
现在的情况是我只能按单选按钮

我已经尝试将onClickListener添加到线性布局中,是的,我可以在线性布局上按下单选按钮,但是单选按钮不仅选择1,而且选择全部

此代码用于单击linearLayout

 layout_card.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                r.setChecked(position == selectedPosition);
                r.setTag(position);
                if (r.isChecked()) {
                    r.setChecked(true);
                    r.setSelected(true);
                } else if (!r.isChecked()) {
                    r.setChecked(false);
                    r.setSelected(false);
                }
            }
        });
对不起,我的解释不好,任何帮助都非常感谢我。
感谢您在您的getView(…)中,写下

layout_card.setTag(position);
并将click listener更改为

layout_card.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            selectedPosition = Integer.parseInt(v.getTag().toString());
            notifyDataSetChange();
        }
    });
如果不需要,请删除以下代码

        r.setTag(position);
        r.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                selectedPosition = (Integer) view.getTag();
                notifyDataSetChanged();
            }
        });

在您的getView(…)中,写

layout_card.setTag(position);
并将click listener更改为

layout_card.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            selectedPosition = Integer.parseInt(v.getTag().toString());
            notifyDataSetChange();
        }
    });
如果不需要,请删除以下代码

        r.setTag(position);
        r.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                selectedPosition = (Integer) view.getTag();
                notifyDataSetChanged();
            }
        });

使用setChecked(true)方法我应该将该方法放在哪里@Hosseinamini你有多少个单选按钮,因为我在你的xml中只看到一个,但在你的解释中,你说所有单选按钮都被选中,而不是一个。这是一个动态单选按钮,我有4个虚拟数据,因此它显示为4个单选按钮或4个线性布局取决于数据@Moulesh@StevenTan我觉得你实施错误可能是你需要recyclerview或列表视图,其中行项目包含单选按钮,因此单击卡上的任意一个可以检查单选按钮使用setChecked(true)方法我应该将该方法放在哪里@Hosseinamini你有多少个单选按钮,因为我在你的xml中只看到一个,但在你的解释中,你说所有单选按钮都被选中,而不是一个。这是一个动态单选按钮,我有4个虚拟数据,因此它显示为4个单选按钮或4个线性布局取决于数据@Moulesh@StevenTan我觉得你执行错误可能是你需要recyclerview或列表视图,其中行项目包含单选按钮,因此单击卡上的任意一个可以选中单选按钮,因此我添加此
layout\u card.setTag(位置)内部getView()和外部监听器?工作没有任何问题..谢谢我添加了这个
layout\u card.setTag(位置)在getView()内部和侦听器外部?可以正常工作。谢谢