在我的应用程序中,我从LoaderManager获得结果..
onLoadFinished()方法调用后,
在我的listview中更新数据 - 它可以正常工作。
我的问题:
但 if(data.getCount> 0) 我想要隐藏我的进度条&空列表消息布局。 我的日志消息正确打印数据计数> 0
但我隐藏代码的视图只是不起作用..
注意:我测试onLoadFinshed方法的外部我的视图隐藏代码工作..
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
listAdapter.changeCursor(data); //works
try {
if (data.getCount() > 0) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Log.d("onLoadFinished()count>0", TAG);//works
mView.findViewById(R.id.loadingProgress).setVisibility(View.GONE);//not working
Log.d("onLoadFinished2 count>0", TAG);//works
mView.findViewById(R.id.customer_no_items).setVisibility(View.GONE);//not working
}
}, 500);
}
答案 0 :(得分:1)
切换到ASyncTask并使用onPostExecute()之类的方法来更新UI。
答案 1 :(得分:-1)
确保您在UI线程上使用您的视图。您可以尝试使用此
runOnUiThread(new Runnable(){
public void run() {
Log.d("onLoadFinished()count>0", TAG);//works
mView.findViewById(R.id.loadingProgress).
setVisibility(View.GONE);//not working
Log.d("onLoadFinished2 count>0", TAG);//works
mView.findViewById(R.id.customer_no_items).
setVisibility(View.GONE);
}
});
或者更好的方法是删除你的线程方法
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
listAdapter.changeCursor(data); //works
Log.d("onLoadFinished()count>0", TAG);//works
mView.findViewById(R.id.loadingProgress).setVisibility(View.GONE);//not working
Log.d("onLoadFinished2 count>0", TAG);//works
mView.findViewById(R.id.customer_no_items).setVisibility(View.GONE);//not working
}