Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 更新listview';不带notifyDataSetChanged的视图项_Android_Listview - Fatal编程技术网

Android 更新listview';不带notifyDataSetChanged的视图项

Android 更新listview';不带notifyDataSetChanged的视图项,android,listview,Android,Listview,我有一个带有listview的android应用程序,它。。布拉布拉。。显示位置的标题和地址。此外,它还以米和圆规显示距离 (抱歉,现在还不能发布截图:) 每当我从SensorManager监听器中获得新的compas数据时,我都会通知数据更改列表会用新的方向更新,一切正常,但是应用程序似乎会冻结几毫秒,没有什么严重的问题,但用户肯定会感觉到这种滞后效应 现在是我真正的问题: 是否可以只更新“CompasView”而不执行notifyDataSetChanged操作? 我认为最好的方法是使用一些

我有一个带有listview的android应用程序,它。。布拉布拉。。显示位置的标题和地址。此外,它还以米和圆规显示距离

(抱歉,现在还不能发布截图:)

每当我从SensorManager监听器中获得新的compas数据时,我都会通知数据更改列表会用新的方向更新,一切正常,但是应用程序似乎会冻结几毫秒,没有什么严重的问题,但用户肯定会感觉到这种滞后效应

现在是我真正的问题:

是否可以只更新“CompasView”而不执行notifyDataSetChanged操作?
我认为最好的方法是使用一些“findViewById”函数,将目的地保存在compasview中,并且只更新compasview,但我只能找到findViewById方法。

您是否正在对UI线程进行大量计算?如果是这样,考虑执行<代码> AycCastase<代码>,以计算新值,然后在<代码> OnPixExcel()/<代码>中调用<代码> NoTyDyDATA转换()/<代码> -<代码> AycCastase>/P>方法。
private class MyAsyncTask extends AsyncTask<Params, Progress, Result> {

    @Override
    protected Result doInBackground(Params... params) {
        //Do calculations here
        return null;
    }

    protected void onPostExecute(Result result) {
        //Submit new data to the listadapter
        adapater.notifyDataSetChanged();
    };
}
私有类MyAsyncTask扩展了AsyncTask{
@凌驾
受保护的结果doInBackground(参数…参数){
//在这里做计算
返回null;
}
受保护的void onPostExecute(结果){
//向listadapter提交新数据
adapater.notifyDataSetChanged();
};
}

不太可能,但是我正在计算Adapter.getView中位置的距离和方位角,但是如果问题出在哪里,那么列表在拖动时不应该滞后吗?如果在
getView()中进行计算,当新视图进入列表时,您可能会遇到滞后(向下/向上滚动下一个/上一个列表项)好的,现在我在AsyncTask中进行所有计算,
getView
只读取预先计算的值。它给了列表一些性能提升,它仍然不完美,但我真的不知道我如何才能找到问题。(但我不认为这是
notifyDataSetChanged
),顺便说一句,它的性能确实可以接受,所以我就把它放在那里。