我正在创建一个应用程序,它需要两种类型的用户。 "观众"和#34;承包商"。我为每个选项制作了两个单选按钮。我想知道三件事: 选择单选按钮时如何激活按钮。如果没有选择单选按钮,如何取消激活按钮。最后,如何使两个单选按钮根据所选的选项将您发送到一个独特的活动。例如,我选择"承包商"然后按下按钮继续,它会将我发送到连接到该单选按钮的独特布局。
这是我的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"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/b"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/gradient_background"
tools:context="com.devteam.abire.abire.b">
<android.support.v7.widget.CardView
app:cardElevation="15dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_width="300dp"
android:layout_height="345dp">
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
app:cardElevation="20dp"
android:layout_width="320dp"
android:layout_height="320dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<View
android:background="#141526"
android:layout_width="match_parent"
android:layout_height="50dp"/>
<ImageView
android:id="@+id/abire_app_icon_v2"
android:layout_marginTop="21dp"
android:elevation="45dp"
android:layout_centerHorizontal="true"
android:background="@drawable/abire_logo_v1"
android:layout_width="55dp"
android:layout_height="55dp" />
<TextView
android:layout_marginStart="20dp"
android:id="@+id/register_as_text"
android:layout_marginTop="10dp"
android:text="Register As A..."
android:textColor="#141526"
android:layout_below="@+id/abire_app_icon_v2"
android:textSize="28sp"
android:textAlignment="textStart"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<RadioButton
android:layout_marginStart="20dp"
android:textSize="22sp"
android:textColor="#141526"
android:id="@+id/viewer_radioBtn"
android:text="Viewer"
android:layout_marginTop="18dp"
android:layout_below="@+id/register_as_text"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<RadioButton
android:layout_marginStart="20dp"
android:textSize="22sp"
android:textColor="#141526"
android:id="@+id/contractor_radioBtn"
android:text="Contractor"
android:layout_marginTop="18dp"
android:layout_below="@+id/viewer_radioBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/continueBtn"
android:textSize="18sp"
android:text="CONTINUE"
android:textColor="#fff"
android:layout_marginTop="25dp"
android:layout_centerHorizontal="true"
android:layout_below="@+id/contractor_radioBtn"
android:background="@drawable/ripple_maroon"
android:layout_width="250dp"
android:layout_height="38dp" />
</RelativeLayout>
</android.support.v7.widget.CardView>
</RelativeLayout>
这是我的Java:
package com.devteam.abire.abire;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class b extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.b);
}
}
答案 0 :(得分:0)
首先,如果您有多重按钮,最好使用radiogroup而不是单选按钮。
对于&#34; 如何在选择单选按钮时激活按钮。如果没有选择单选按钮,如何取消激活按钮。&#34;,为活动中的按钮和单选按钮创建参考。然后,如果选中第一个单选按钮,则禁用按钮:
${@:2:1}
对于&#34; 最后,如何使两个单选按钮根据所选的选项将您发送到一个独特的活动。&#34;,同时使用radiogroup:
button.setEnabled(false);
} });
答案 1 :(得分:0)
如果你想一次只能点击其中一个按钮,你应该将radiobuttons放在radiogroup内
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RadioButton
android:layout_marginStart="20dp"
android:textSize="22sp"
android:textColor="#141526"
android:id="@+id/viewer_radioBtn"
android:onCLick="onRadioButtonClicked"
android:text="Viewer"
android:layout_marginTop="18dp"
android:layout_below="@+id/register_as_text"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<RadioButton
android:layout_marginStart="20dp"
android:textSize="22sp"
android:textColor="#141526"
android:id="@+id/contractor_radioBtn"
android:onCLick="onRadioButtonClicked"
android:text="Contractor"
android:layout_marginTop="18dp"
android:layout_below="@+id/viewer_radioBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</RadioGroup>
<Button
android:id="@+id/continueBtn"
android:textSize="18sp"
android:text="CONTINUE"
android:textColor="#fff"
android:layout_marginTop="25dp"
android:layout_centerHorizontal="true"
android:layout_below="@+id/contractor_radioBtn"
android:onCLick="onButtonClicked"
android:background="@drawable/ripple_maroon"
android:layout_width="250dp"
android:layout_height="38dp" />
package com.devteam.abire.abire;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class b extends AppCompatActivity {
private String mClickedRadioButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.b);
}
public void onRadioButtonClicked(View view) {
// Is the button now checked?
boolean checked = ((RadioButton) view).isChecked();
// Check which radio button was clicked
switch(view.getId()) {
case R.id.viewer_radioBtn":
if (checked)
sClickedRadioButton = "viewer";
break;
case R.id.contractor_radioBtn"
if (checked)
sClickedRadioButton; = "contractor";
break;
}
}
public void onButtonClicked(View v){
if(sClickedRadioButton == null){
return;
}else if(sClickedRadioButton.equals("viewer")){
//Do something when view is checked
}else if(sClickedRadioButton.equals("contractor"){
// Do something when contractor is checked
}
}