我正在尝试使用以下代码在Android中的对话框上执行单选按钮。
我想知道如何使用以下getTranslations从域中检索列表以替换{"容易"," CharSequence []项目中的",...},所以我可以列出来自领域的项目。感谢。
领域的Getter功能:
public RealmList<Translation> getTranslations() {
return Translations;
}
带单选按钮的翻译对话框功能:
public Dialog onCreateDialog(Bundle savedInstanceState) {
Bundle bundle = getArguments();
int position = bundle.getInt("position");
final CharSequence[] items = {" Easy "," Medium "," Hard "}
AlertDialog.Builder b = new AlertDialog.Builder(getActivity());
b.setTitle("English or Chinese names");
b.setSingleChoiceItems(items, position, null);
Log.d(tag, String.valueOf(items));
b.setPositiveButton("OK",positiveListener);
b.setNegativeButton("Cancel", null);
AlertDialog d = b.create();
答案 0 :(得分:0)
我认为问题在于您使用最终:
final CharSequence[] items = {" Easy "," Medium "," Hard "}
在Java编程语言中, final 关键字用于几个不同的上下文中,以定义一个只能 的实体分配一次。 一旦指定了最终变量,它总是包含相同的值。
来源:https://en.wikipedia.org/wiki/Final_%28Java%29
另外你应该考虑CharSequence是一个接口
public interface CharSequence
CharSequence是char值的可读序列。此接口提供对许多不同类型的char序列的统一,只读访问。 char值表示Basic Multilingual Plane(BMP)中的字符或代理项。有关详细信息,请参阅Unicode字符表示。
https://docs.oracle.com/javase/7/docs/api/java/lang/CharSequence.html
答案 1 :(得分:0)
您不能将RealmList转换为原始列表吗? e.g。
public String[] getItems() {
String[] items = new String[translations.size()];
for (int i = 0; i < items.size(); i++) {
items[i] = translations.get(i).getTitle();
}
return items;
}