在我的警告对话框中,我正在尝试根据设备设置的语言突出显示特定的单选按钮,但我不确定要添加哪些代码才能实现此目的。问题是我认为必须采用的解决方案。需要做些什么来解决这个问题?
E.g。当我的设备语言设置为英语时,我希望选择“英语”单选按钮。
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();
}
});
}
}
答案 0 :(得分:1)
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;
}
});