[ОБНОВЛЕНИЕ: этот запрос решается другими способами]
Я попытался написать 2 кода, которые я буду добавлять здесь. Это не показывает никаких ошибок, но приложение останавливается сразу после запуска. Я пытаюсь передать текстовое значение через TextView
, когда пользователь нажимает Radiobutton
из RadioGroup
. Как новичок, я все еще не могу найти правильный метод. Верны ли мои методы? Какие методы я могу использовать, чтобы исправить эту проблему?
Я не хочу использовать кнопку и тост. Я только хочу использовать компонент, который будет отображать значение, хранящееся в нем через код. Другие методы давали мне ошибки, поэтому я прикрепляю два кода Java, которые не выдают ошибок.
Код 1:
package com.example.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
RadioGroup radiogroup1;
RadioButton no;
RadioButton yes;
TextView txt = (TextView) findViewById(R.id.textView1);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
yes =(RadioButton) findViewById(R.id.yes);
no = (RadioButton) findViewById(R.id.no);
RadioGroup radioGroup1 = findViewById(R.id.radiogroup1);
};
public void onRadioButtonClicked(View view) {
boolean checked = ((RadioButton) view).isChecked();
String str;
str = "";
// Check which radio button was clicked
switch (view.getId()) {
case R.id.yes:
if (checked)
str = "Hold on";
txt.setText(str);
break;
case R.id.no:
if (checked)
str = "Fine go now";
txt.setText(str);
break;
}
}
}
Код 2
public class MainActivity extends AppCompatActivity {
RadioGroup radiogroup1;
RadioButton yes;
RadioButton no;
TextView txt = (TextView) findViewById(R.id.textView1);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
yes =(RadioButton)findViewById(R.id.yes);
no = (RadioButton)findViewById(R.id.no);
RadioGroup radioGroup1 = findViewById(R.id.radiogroup1);
radiogroup1.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
int index = radiogroup1.indexOfChild(radiogroup1);
String str="";
switch (index) {
case 0:
str = "Hold on";
txt.setText(str);
break;
case 1:
str = "Fine go";
txt.setText(str);
break;
}
}
});
}
}
Различный текст будет отображаться для обоих RadioButtons
.