ユーザーがページのすべての詳細を入力/選択する必要があることを検証する必要があります。フィールドが空の場合、Toast message to fill.
を表示したい場合RadioGroup.
でRadioButton
の検証を設定する必要がありますこのコードを試しましたが、正しく動作しませんでした。正しい方法を教えてください。ありがとうございました。
// get selected radio button from radioGroup
int selectedId = gender.getCheckedRadioButtonId();
// find the radiobutton by returned id
selectedRadioButton = (RadioButton)findViewById(selectedId);
// do what you want with radioButtonText (save it to database in your case)
radioButtonText = selectedRadioButton.getText().toString();
if(radioButtonText.matches(""))
{
Toast.makeText(getApplicationContext(), "Please select Gender", Toast.LENGTH_SHORT).show();
Log.d("QAOD", "Gender is Null");
}
else
{
Log.d("QAOD", "Gender is Selected");
}
1つのRadioButton
のみを確認する場合は、isChecked
関数を使用できます。
if(radioButton.isChecked())
{
// is checked
}
else
{
// not checked
}
そして、RadioGroup
がある場合は、使用できます
if (radioGroup.getCheckedRadioButtonId() == -1)
{
// no radio buttons are checked
}
else
{
// one of the radio buttons is checked
}
あなたがする必要があるのはgetCheckedRadioButtonId()
とisChecked()
メソッドを使用することです、
if(gender.getCheckedRadioButtonId()==-1)
{
Toast.makeText(getApplicationContext(), "Please select Gender", Toast.LENGTH_SHORT).show();
}
else
{
// get selected radio button from radioGroup
int selectedId = gender.getCheckedRadioButtonId();
// find the radiobutton by returned id
selectedRadioButton = (RadioButton)findViewById(selectedId);
Toast.makeText(getApplicationContext(), selectedRadioButton.getText().toString()+" is selected", Toast.LENGTH_SHORT).show();
}
https://developer.Android.com/guide/topics/ui/controls/radiobutton.html
チェックする必要があるすべてのradioButtonに対してisChecked()関数を使用します。
RadioButton maleRadioButton, femaleRadioButton;
maleRadioButton = (RadioButton) findViewById(R.id.maleRadioButton);
femaleRadioButton = (RadioButton) findViewById(R.id.femaleRadioButton);
次に、if/elseケースの考慮に結果を使用します。
if (maleRadioButton.isChecked() || femaleRadioButton.isChecked()) {
Log.d("QAOD", "Gender is Selected");
} else {
Toast.makeText(getApplicationContext(), "Please select Gender", Toast.LENGTH_SHORT).show();
Log.d("QAOD", "Gender is Null");
}
これを使用してみてください
<RadioGroup
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:orientation="horizontal"
>
<RadioButton
Android:id="@+id/standard_delivery"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="@string/Standard_delivery"
Android:checked="true"
Android:layout_marginTop="4dp"
Android:layout_marginLeft="15dp"
Android:textSize="12dp"
Android:onClick="onRadioButtonClicked"
/>
<RadioButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="@string/Midnight_delivery"
Android:checked="false"
Android:layout_marginRight="15dp"
Android:layout_marginTop="4dp"
Android:textSize="12dp"
Android:onClick="onRadioButtonClicked"
Android:id="@+id/midnight_delivery"
/>
</RadioGroup>
これはJavaクラスです
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.standard_delivery:
if (checked)
Toast.makeText(DishActivity.this," standard delivery",Toast.LENGTH_LONG).show();
break;
case R.id.midnight_delivery:
if (checked)
Toast.makeText(DishActivity.this," midnight delivery",Toast.LENGTH_LONG).show();
break;
}
}
ラジオボタンのIDを使用して、mRadioGroup.getCheckedRadioButtonId()
を使用して取得したcheckedRadioButton
のIDと比較しました
ここに私のコードがあります:
mRadioButton1=(RadioButton)findViewById(R.id.first);
mRadioButton2=(RadioButton)findViewById(R.id.second);
mRadioButton3=(RadioButton)findViewById(R.id.third);
mRadioButton4=(RadioButton)findViewById(R.id.fourth);
mNextButton=(Button)findViewById(R.id.next_button);
mNextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int selectedId=mRadioGroup.getCheckedRadioButtonId();
int n=0;
if(selectedId==R.id.first){n=1;}
else if(selectedId==R.id.second){n=2;}
else if(selectedId==R.id.third){n=3;}
else if(selectedId==R.id.fourth){n=4;}
//. . . .
}
私は次を使用し、それは私のために働いた。ラジオグループ内のラジオボタンがチェックされると、検証関数がtrueを返し、送信が行われるブール検証関数を使用しました。 falseが返された場合、提出は行われず、「性別の選択」へのトーストが表示されます。
MainActivity.Java
public class MainActivity extends AppCompatActivity {
private RadioGroup genderRadioGroup;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Initialize Radio Group And Submit Button
genderRadioGroup=findViewById(R.id.gender_radiogroup);
AppCompatButton submit = findViewById(R.id.btnSubmit);
//Submit Radio Group using Submit Button
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Check Gender radio Group For Selected Radio Button
if(genderRadioGroup.getCheckedRadioButtonId()==-1){//No Radio Button Is Checked
Toast.makeText(getApplicationContext(), "Please Select Gender", Toast.LENGTH_LONG).show();
}else{//Radio Button Is Checked
RadioButton selectedRadioButton = findViewById(genderRadioGroup.getCheckedRadioButtonId());
gender = selectedRadioButton == null ? "" : selectedRadioButton.getText().toString().trim();
}
//Validate
if (validateInputs()) {
//code to proceed when Radio button is checked
}
}
}
//Validation - No process is initialized if no Radio button is checked
private boolean validateInputs() {
if (genderRadioGroup.getCheckedRadioButtonId()==-1) {
return false;
}
return true;
}
}
Activity_main.xmlで:
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="horizontal">
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="@string/gender"/>
<RadioGroup
Android:id="@+id/gender_radiogroup"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:orientation="horizontal">
<RadioButton
Android:id="@+id/male"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="@string/male"/>
<RadioButton
Android:id="@+id/female"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="@string/female""/>
</RadioGroup>
<Android.support.v7.widget.AppCompatButton
Android:id="@+id/btnSubmit"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:text="@string/submit"/>
</LinearLayout>
性別ラジオボタンが選択されていない場合、続行するコードは実行されません。
これがお役に立てば幸いです。
私の答えは ドキュメント によると、うまくいきます。
1)以下に示すように、xmlファイルにAndroid:onClick="onRadioButtonClicked"
を含めます。
<RadioGroup
Android:id="@+id/rg1"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical"
Android:gravity="center">
<RadioButton
Android:id="@+id/b1"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:text="onCreateOptionsMenu()"
Android:onClick="onRadioButtonClicked"
/>
<RadioButton
Android:id="@+id/b2"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:text="onCreateMenu()"
Android:onClick="onRadioButtonClicked"
/>
</RadioGroup>
2)Javaファイルで、以下に示すようにonCreate()
メソッドの外にonRadioButtonClicked
メソッドを実装します。
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.b1:
if (checked)
{
Log.e("b1", "b1" );
break;
}
case R.id.b2:
if (checked)
break;
}
}