小编Nik*_*iko的帖子

如何在Android中以编程方式获取SharedPreferences的所有键?

如何获取所有密钥SharedPreferences,而不仅仅是密钥的优先级值?

prefA = getSharedPreferences("MyAttack", MODE_PRIVATE);
prefB= getSharedPreferences("MySkill", MODE_PRIVATE);
Run Code Online (Sandbox Code Playgroud)

android android-preferences

64
推荐指数
6
解决办法
5万
查看次数

Gson可选和必填字段

应该如何处理Gson和需要与可选字段?

由于所有字段都是可选的,因此如果响应json包含某个键,我无法真正使网络请求失败,Gson只会将其解析为null.

我正在使用的方法 gson.fromJson(json, mClassOfT);

例如,如果我有以下json:

{"user_id":128591, "user_name":"TestUser"}
Run Code Online (Sandbox Code Playgroud)

而我的班级:

public class User {

    @SerializedName("user_id")
    private String mId;

    @SerializedName("user_name")
    private String mName;

    public String getId() {
        return mId;
    }

    public void setId(String id) {
        mId = id;
    }

    public String getName() {
        return mName;
    }

    public void setName(String name) {
        mName = name;
    }
}
Run Code Online (Sandbox Code Playgroud)

Gson如果json不包含user_iduser_name键,是否有任何选项失败?

在许多情况下,您可能需要至少一些值进行解析,而其他值可以是可选的?

是否有任何模式或库可用于全局处理此案例?

谢谢.

json gson

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

Android凌空处理重定向

我最近开始使用谷歌的Volley lib来处理我的网络请求.我的一个请求获得错误301重定向,所以我的问题是,可以自动地以某种方式自动处理重定向,还是我必须手动处理parseNetworkError或使用某种在RetryPolicy这里?

谢谢.

android android-volley

27
推荐指数
5
解决办法
3万
查看次数

从WebView打开softinput时,Android窗口不会调整大小/平移

我的问题是如下.

  1. 应用程序使用主题android:Theme.NoTitleBar.Fullscreen,只有一个Activity,所有其他视图都是Fragment
  2. WebView里面ViewPager Fragment有里面的东西ScrollView
  3. HTML内容包含输入字段
  4. 我点击底部的输入字段 WebView
  5. 软输入打开,但未Window调整大小/平移

我已经尝试过设置android:windowSoftInputMode="adjustResize"或者android:windowSoftInputMode="adjustPan"在我的清单中Activity.还尝试在java中设置其中一个.

我的应用程序中的正常EditText内部ScrollView确实正确调整平移,以便用户可以看到他/她正在键入的位置.

更新:

如果没有工作解决方案来调整窗口,有没有办法WebView认为它的内容就像半屏高度更大,所以用户至少可以滚动输入可见.

android android-webview android-fragments

21
推荐指数
1
解决办法
1万
查看次数

将接口传递给Fragment

让我们考虑一下我拥有Fragment A和的情况Fragment B.

B 声明:

public interface MyInterface {
    public void onTrigger(int position);
}
Run Code Online (Sandbox Code Playgroud)

A 实现这个接口.

Fragment B进入堆栈时,我应该如何传递Fragment A它的引用,Bundle以便在需要时A获得onTrigger回调.

我使用的情况是,A具有ListView与项目,并B具有ViewPager与项目.两者都包含相同的项目,当用户从B -> A弹出之前开始B它应该触发回调A以更新它的ListView位置以匹配B寻呼机位置.

谢谢.

android android-fragments android-bundle

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

android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3147)

知道为什么会出现这种崩溃吗?跟踪只有本机代码,因此很难跟踪它.发生在三星Galaxy S3平台4.1.2当我运行里面的动画Fragment,当动画结束时我叫notifyDataSetChangedFragmentStatePagerAdapter.该问题不是100%可重复的.

谢谢.

跟踪:

03-01 11:50:11.836: E/AndroidRuntime(21136): FATAL EXCEPTION: main
03-01 11:50:11.836: E/AndroidRuntime(21136): java.lang.NullPointerException
03-01 11:50:11.836: E/AndroidRuntime(21136):    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3147)
03-01 11:50:11.836: E/AndroidRuntime(21136):    at android.view.View.getDisplayList(View.java:12646)
03-01 11:50:11.836: E/AndroidRuntime(21136):    at android.view.View.getDisplayList(View.java:12754)
03-01 11:50:11.836: E/AndroidRuntime(21136):    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3151)
03-01 11:50:11.836: E/AndroidRuntime(21136):    at android.view.View.getDisplayList(View.java:12646)
03-01 11:50:11.836: E/AndroidRuntime(21136):    at android.view.View.getDisplayList(View.java:12754)
03-01 11:50:11.836: E/AndroidRuntime(21136):    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3151)
03-01 11:50:11.836: E/AndroidRuntime(21136):    at android.view.View.getDisplayList(View.java:12646)
03-01 11:50:11.836: E/AndroidRuntime(21136):    at android.view.View.getDisplayList(View.java:12754)
03-01 11:50:11.836: E/AndroidRuntime(21136):    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3151)
03-01 11:50:11.836: E/AndroidRuntime(21136):    at android.view.View.getDisplayList(View.java:12646)
03-01 11:50:11.836: E/AndroidRuntime(21136):    at android.view.View.getDisplayList(View.java:12754) …
Run Code Online (Sandbox Code Playgroud)

android

10
推荐指数
1
解决办法
2682
查看次数

Geofencing API触发器在已经进入区域时进入事件

我使用最新的Android Geofence API遇到了这个问题.用法与示例用法完全相同.我设置了Geofence.GEOFENCE_TRANSITION_ENTER类型地理围栏,半径为500米,到期时间为Geofence.NEVER_EXPIRE.这工作正常,但如果我经纬度大约10米并设置了地理围栏,它会立即触发.

所以我在Geofence.GEOFENCE_TRANSITION_ENTER这里理解错误这个词,它不应该只在我们在区外并且进入它时触发,而不是在我们已经在该区域时吗?

谢谢.

android android-geofence

9
推荐指数
1
解决办法
6856
查看次数

overScrollBy并不总是在Lollipop(5.x)平台上反弹

我基于以下帖子重写了overScrollBy方法ScrollView:

http://jasonfry.co.uk/blog/android-overscroll-revisited/

它在其他平台版本上工作正常,但如果将fling动作应用于Lollipop则无法反弹ScrollView.

有人遇到过这个问题并找到了解决方法吗?

在构造函数中调用setOverScrollMode(OVER_SCROLL_ALWAYS);

这里我在自定义ScrollView类中重写的相关代码:

@Override
protected boolean overScrollBy(int deltaX, int deltaY, int scrollX,
                               int scrollY, int scrollRangeX, int scrollRangeY,
                               int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent) {
    return super.overScrollBy(deltaX, deltaY, scrollX, scrollY,
            scrollRangeX, scrollRangeY, maxOverScrollX, OVER_SCROLL_AMOUNT,
            isTouchEvent);
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

android android-scrollview

9
推荐指数
1
解决办法
828
查看次数

自定义Retrofit ErrorHandler提供UndeclaredThrowableException

基于这篇文章我应如何处理Android上的Retrofit"无互联网连接"

我做了一个习惯 ErrorHandler

private static class CustomErrorHandler implements ErrorHandler {

    @Override
    public Throwable handleError(RetrofitError error) {
        if (error.isNetworkError()) {
            return new MyNetworkError();
        }

        return error.getCause();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我的应用程序崩溃了,我得到了这个:

java.lang.reflect.UndeclaredThrowableException
Run Code Online (Sandbox Code Playgroud)

适配器是否需要一些配置?使用Retrofit 1.6.0OkHttp 2.0.0

谢谢.

android retrofit

7
推荐指数
1
解决办法
2085
查看次数

更新/更改Realm加密密钥

Realm在我的应用程序中加密了数据库.我想更改加密密钥.是否有正确的方法Realm使用新的加密密钥制作文件的副本,或者是否有其他选项可用?

谢谢.

android realm

7
推荐指数
1
解决办法
1839
查看次数