我已经创建了一个函数并将其设置为onClick,因此每次我按下按钮时都会调用此函数。它被调用,但是其他4个函数的值我无法在setMessage()函数中获得(当我们创建对话框时)。因此逻辑就像,先按下按钮后,我们检查哪个radioId1
等于哪个id
,然后调用适当的功能(视频,cons,新闻,pict)。这4个函数。返回一些字符串。然后,我想将这些字符串添加到对话框中的某些文本中,例如....SetMessage(checkMyId() + "Some text").SetPositiveButton(...)...
但问题是我的功能checkMyId设置为onClick,因此它接收到一个参数 View v ,当我在SetMessage()中将其称为“ manualy”时,它显示错误,因为我没有不知道该放在括号内的内容。所以问题是,该View是什么类型的数据(或其他)?我看了一些文档,但对我的问题了解甚少,至少不了解如何实现。
public void checkMyId(View v) {
int radioId1 = radioGroup.getCheckedRadioButtonId();
if (radioId1 == R.id.radio_one) {
video();
} else if (radioId1 == R.id.radio_two) {
pict();
} else if (radioId1 == R.id.radio_three) {
cons();
} else news();
}
已编辑
答案 0 :(得分:0)
先生,您有2种方法
首先尝试一下(提示:不要忘记在活动中实现ONCLICK)
public void checkMyId(View v) {
switch (v.getId()) {
case R.id.radio_one:
video();
break;
case R.id.radio_two:
pict();
break;
case R.id.radio_three:
cons();
break;
default:
news();
break;
}
}
您可以在OnCreate中使用它(提示:在广播组中)HERE
(findViewById(R.id.radio_one)).setOnCheckedChangeListener(new
OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// checkedId is the RadioButton selected
}
});
____ READ This也适用于单个RB