Получение выбранного переключателя внутри OnClick для кнопки - PullRequest
0 голосов
/ 19 ноября 2011

Я создаю простое приложение которые позволяют пользователю ввести свое имя и выбрать переключатель «с именем» и тост показывает, Привет, Имя

и другое радио для гостя, чтобы показать привет гостю, так как я могу получить выбранное радио внутри OnClick мне нужно, чтобы получить их от FindViewByID ??

вот мой код

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button button = (Button) findViewById(R.id.button1);
    button.setOnClickListener(this);

}

public void onClick(View v) {
    if (v.getId() == R.id.button1) {
        //getting the selected radio if its radio 0
        Toast.makeText(this, "Hello Guest", Toast.LENGTH_LONG).show();
    }

    //getting the selected radio if its radio 1
    EditText txt = (EditText) findViewById(R.id.editText1);

    Toast.makeText(this, "Hello " + txt.toString(), Toast.LENGTH_LONG).show();
}

Ответы [ 2 ]

0 голосов
/ 19 ноября 2011

лучше непосредственно проверять состояние переключателя при прослушивании нажатия кнопки:

 @Override
public void onClick(View v) 

{
if(v == button)
{

if(rb1.isChecked() == true)
Toast.makeText(this, "Hello"+rb1.getText(), Toast.LENGTH_LONG).show();

if(rb2.isChecked() == true)
Toast.makeText(this, "Hello"+rb2.getText(), Toast.LENGTH_LONG).show();
}
}

где

rb1=(RadioButton)findViewById(R.id.optname);
rb2=(RadioButton)findViewById(R.id.optguest);

ЗА БОЛЬШЕ

0 голосов
/ 19 ноября 2011

Попробуйте вместо этого:

button.setOnClickListener(new View.OnClickListener(){
    public void onClick(View v){
        //YOUR CODE HERE
    }
});

Поместите это в onCreate () и посмотрите, как это работает для вас. Вы также пытались проверить, действительно ли идентификатор просмотра v, переданный в onClick, является правильным представлением? Чтобы увидеть это, используйте log , чтобы проверить Id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...