小编Kry*_*olc的帖子

错误 - android.database.CursorIndexOutOfBoundsException:请求索引0,大小为0

我正在试图做一个数据库,但我有一个问题......

这是日志:

E/AndroidRuntime(894): FATAL EXCEPTION: main
E/AndroidRuntime(894): java.lang.IllegalStateException: Could not execute method of the activity
E/AndroidRuntime(894):  at android.view.View$1.onClick(View.java:3044)
E/AndroidRuntime(894):  at android.view.View.performClick(View.java:3511)
E/AndroidRuntime(894):  at android.view.View$PerformClick.run(View.java:14105)
E/AndroidRuntime(894):  at android.os.Handler.handleCallback(Handler.java:605)
E/AndroidRuntime(894):  at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime(894):  at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(894):  at android.app.ActivityThread.main(ActivityThread.java:4424)
E/AndroidRuntime(894):  at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(894):  at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(894):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
E/AndroidRuntime(894):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
E/AndroidRuntime(894):  at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(894): Caused by: java.lang.reflect.InvocationTargetException
E/AndroidRuntime(894):  at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(894):  at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(894):  at android.view.View$1.onClick(View.java:3039)
E/AndroidRuntime(894):  ... 11 more
E/AndroidRuntime(894): Caused by: android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a …
Run Code Online (Sandbox Code Playgroud)

database android

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

Android数据绑定和场景过渡

在新场景中,第一个场景中没有按钮。

当我切换到新场景时,数据绑定不起作用-我无法将新按钮上的onClick委派给ViewModel。

我当前的逻辑是:

@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    TestViewModel testViewModel = new TestViewModel();

    ViewDataBinding binding = DataBindingUtil.inflate(inflater, R.layout.test_fragment, container, false);
    binding.setVariable(BR.vm, viewModel);
    binding.executePendingBindings();

    return mainView.getRoot();
}


public void changeToSceneB() {
        ViewGroup sceneRoot = (ViewGroup) getView().findViewById(R.id.scene_root);
        Scene loadedScene = Scene.getSceneForLayout(sceneRoot, R.layout.test_scene_b, getContext());
        Transition transition = TransitionInflater.from(context).inflateTransition(R.transition.test_transition);
        TransitionManager.go(loadedScene, transition);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是test_fragment XML的一部分:

   <FrameLayout
        android:id="@+id/scene_root"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/appBar"
        android:layout_gravity="center_horizontal"
        android:layout_marginLeft="@dimen/activity_margin"
        android:layout_marginRight="@dimen/activity_margin"
        android:layout_marginTop="70dp">

        <include
            layout="@layout/test_scene_a"
            binding:vm="@{vm}"/>

    </FrameLayout>
Run Code Online (Sandbox Code Playgroud)

这就是test_scene_b的样子(代码已更改,我留下了最有趣的部分):

<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)

<data>

    <variable
        name="vm"
        type="com.test.test.TestViewModel"/>
</data> …
Run Code Online (Sandbox Code Playgroud)

data-binding android android-transitions

5
推荐指数
1
解决办法
282
查看次数

location.getspeed()更新

我有一个小问题.我在location.getSpeed()方法上找到了一个onLocationChanged()方法,.getSpeed()当我呆在同一个地方时,通常不会更新/改为0km/h.

我应该在哪里找到一种location.getGpeed()方法,当我留在原地时更新显示0km/h?

另一个问题.这是我的locationListener:

private final LocationListener locationListener = new LocationListener() 
    {public void onLocationChanged(Location location) {     
    boolean var = false;
    float distance;

        if (firstRun) { distance=0; firstRun=false; }
        else
        distance = location.distanceTo (startLocation);
        Tspeed.setText("0km/h");


        if (location.getSpeed()!=0) 
        {
            Tspeed.setText(""+(location.getSpeed()*3600/1000 +"km/h")); 
        }
        else
        {
            Tspeed.setText("0km/h");
        }


        sAllDistance += distance;  // 
        startLocation=location;
        Tdistance.setText(""+(int)SAllDistance+" m");

    }
Run Code Online (Sandbox Code Playgroud)

问题是:当LocationManager得到修复时,第一个AllDistance返回的location.distanceTo()是±50米.

我该如何解决?

gps android location

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