所有我正在开发Android并希望在简单应用中同时使用RadioGroup
和CheckBox
,我想对{8}使用setOnCheckedChangeListener()
,但我正面临错误说导入碰撞。
我的代码是:
public class MainActivity extends Activity {
RadioGroup radioGroup;
CheckBox checkBox;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
radioGroup = (RadioGroup) findViewById(R.id.radioGroup1);
checkBox = (CheckBox) findViewById(R.id.checkBox1);
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
int option = radioGroup.getCheckedRadioButtonId();
if(option == R.id.radio0){
Toast.makeText(MainActivity.this, "You Selected Java is Best", Toast.LENGTH_LONG).show();
}
else if(option == R.id.radio1){
Toast.makeText(MainActivity.this, "You Selected C++ is Best", Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(MainActivity.this, "You Selected C# is Best", Toast.LENGTH_LONG).show();
}
}
});
checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
if(isChecked){
Toast.makeText(MainActivity.this, "You Selected Yes", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(MainActivity.this, "You Un-selected Yes", Toast.LENGTH_LONG).show();
}
}
});
}
Edit
我的进口是:
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;// this one collides with
import android.widget.RadioGroup;
import android.widget.Toast;
import android.widget.RadioGroup.OnCheckedChangeListener;// this one
现在我无法解决这个问题,请告诉我该怎么做。 在此先感谢...
答案 0 :(得分:3)
有两种不同的OnCheckedChangeListener,让编译器知道你想要使用哪个版本:
RadioGroup使用RadioGroup.OnCheckedChangeListener
:
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
// ^^^^^^^^^^^
CheckBox使用CompoundButton.OnCheckedChangeListener
:
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
// ^^^^^^^^^^^^^^^