对话框中的单选按钮不会自动被选中
Radio button in dialog not automically being selected
在我的警告对话框中,我试图根据设备设置的语言突出显示一个特定的单选按钮,但我不确定要添加什么代码才能实现这一点。问题是我认为解决方案必须去哪里。需要做什么来解决这个问题?
E.g. When my device language is set to English, I want the 'English' radio button to be selected.
public class MainActivity extends AppCompatActivity {
AlertDialog languageDialog;
Context context = this;
int i;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button button0 = (Button) findViewById(R.id.button0);
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (Locale.getDefault().equals(Locale.ENGLISH)) {
?
}
final CharSequence[] items = {
getResources().getString(R.string.english),
getResources().getString(R.string.french),
getResources().getString(R.string.japanese)
};
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle(R.string.language);
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
i = item;
}
});
languageDialog = builder.create();
languageDialog.show();
}
});
}
}
setSingleChoiceItems
中的第二个参数是您设置所选项目的位置。那么,让我们找出items
对应于设备当前语言的索引。
int defaultLang = -1;
for(int i = 0; i < items.length; i++) {
if(items[i].toString().equalsIgnoreCase(Locale.getDefault().getDisplayLanguage())) {
defaultLang = i;
break;
}
}
然后,用这个索引为对话框设置项目
builder.setSingleChoiceItems(items, defaultLang, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
i = item;
}
});
在我的警告对话框中,我试图根据设备设置的语言突出显示一个特定的单选按钮,但我不确定要添加什么代码才能实现这一点。问题是我认为解决方案必须去哪里。需要做什么来解决这个问题?
E.g. When my device language is set to English, I want the 'English' radio button to be selected.
public class MainActivity extends AppCompatActivity {
AlertDialog languageDialog;
Context context = this;
int i;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button button0 = (Button) findViewById(R.id.button0);
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (Locale.getDefault().equals(Locale.ENGLISH)) {
?
}
final CharSequence[] items = {
getResources().getString(R.string.english),
getResources().getString(R.string.french),
getResources().getString(R.string.japanese)
};
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle(R.string.language);
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
i = item;
}
});
languageDialog = builder.create();
languageDialog.show();
}
});
}
}
setSingleChoiceItems
中的第二个参数是您设置所选项目的位置。那么,让我们找出items
对应于设备当前语言的索引。
int defaultLang = -1;
for(int i = 0; i < items.length; i++) {
if(items[i].toString().equalsIgnoreCase(Locale.getDefault().getDisplayLanguage())) {
defaultLang = i;
break;
}
}
然后,用这个索引为对话框设置项目
builder.setSingleChoiceItems(items, defaultLang, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
i = item;
}
});