小编avi*_*vid的帖子

Gson将List <String>反序列化为realmList <RealmString>

我正在使用gson进行改造,将我的json反序列化为领域对象.这在大多数情况下都非常有效.处理时遇到麻烦

RealmList(String(或任何其他基本数据类型))

由于Realm不支持RealmList,其中E不扩展Realm对象,我将String包装在RealmObject中.

public class RealmString extends RealmObject {
  private String val;

  public String getValue() {
    return val;
  }

  public void setValue(String value) {
    this.val = value;
  }
}
Run Code Online (Sandbox Code Playgroud)

我的领域对象如下

    public class RealmPerson extends RealmObject {
    @PrimaryKey
    private String userId;
    ...
    private RealmList<RealmString> stringStuff;
    private RealmList<SimpleRealmObj> otherStuff;

    <setters and getters>
   }
Run Code Online (Sandbox Code Playgroud)

SimpleRealmObj工作正常,因为它只有String元素

    public class SimpleRealmObj extends RealmObject {
    private String foo;
    private String bar;
       ...
    }
Run Code Online (Sandbox Code Playgroud)

如何反序列化stringStuff?我尝试使用gson TypeAdapter

public class RealmPersonAdapter extends TypeAdapter<RealmPerson> {
    @Override
    public void write(JsonWriter out, RealmPerson …
Run Code Online (Sandbox Code Playgroud)

java android realm gson

25
推荐指数
2
解决办法
2万
查看次数

自定义对话框片段在软键盘弹出窗口上调整大小

我有一个在较小屏幕上全屏的对话碎片,但对于较大的屏幕具有一定的尺寸.

该对话框在页脚中有一个编辑文本字段和几个操作按钮.我需要调整对话框片段的大小,以便在键盘对焦时按钮位于软键盘上方.

在较小的屏幕上,以下代码段可确保对话框调整大小.

<style name="fullScreenDialog" parent="android:Theme">
  <item name="android:windowSoftInputMode">adjustResize</item>
</style>
Run Code Online (Sandbox Code Playgroud)

对于较大的屏幕,尺寸设置如下.

@Override
public void onStart() {
    super.onStart();
    if (EPHelper.deviceHasLargeScreen()) {
        Dialog d = getDialog();
        Window w = d.getWindow();

        if (dimenH > 0 && dimenW > 0) {
            w.setLayout(dimenW, dimenH);
        }
Run Code Online (Sandbox Code Playgroud)

我尝试在onViewCreated中使用SOFT_INPUT_ADJUST_RESIZE

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    Window w = getDialog().getWindow();
    w.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用.我注释掉代码来设置布局尺寸,并且中提琴可以工作.因此,设置布局参数似乎阻碍了调整大小.

  • 我可以使布局高度更小,以便键盘适合,但它似乎hacky.
  • 另一个选项是在显示软键盘时调整对话框片段的大小.

有没有更好/推荐的方法让这两者一起工作 - >显示软键盘时,对话框片段和屏幕的自定义屏幕大小调整大小.

android android-fragments

5
推荐指数
0
解决办法
2007
查看次数

标签 统计

android ×2

android-fragments ×1

gson ×1

java ×1

realm ×1