使用realm getter函数实现单选按钮

时间:2016-01-23 20:09:55

标签: java android realm

我正在尝试使用以下代码在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();

2 个答案:

答案 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;
}