我试图用 JSON 内容填充 ListFragment ,我用 JSONParcer(扩展AsyncTask )类解析。由于特定的列表行布局,我还编写了 CustomAdapter(extends Arrayadapter)。所有工作都很好,除了 ListFragment 中的无加载圈时它正在加载(因为它应该是默认情况下)。我该怎么办呢?
这是我的适配器代码:
public class CustomAdapter extends ArrayAdapter<ListItem>
{
private final Activity context;
private final ListItem[] data;
public CustomAdapter(Activity context,ListItem[] itemz)
{
super(context, R.layout.list_item,itemz);
this.context = context;
this.data = itemz;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
LayoutInflater inflater = context.getLayoutInflater();
View rowView = inflater.inflate(R.layout.list_item, null,true);
TextView txtTitle = (TextView) rowView.findViewById(R.id.title);
TextView txtBody = (TextView) rowView.findViewById(R.id.body);
ImageView imageView = (ImageView) rowView.findViewById(R.id.picture);
txtTitle.setText(data[position].getTitle());
txtBody.setText(data[position].getBody());
imageView.setImageBitmap(data[position].getPicture());
return rowView;
}
}
答案 0 :(得分:2)
在ListFragment
来电setListShown(false);
中隐藏ListView
并显示加载图标。
当您想要显示您的项目(加载,处理,等等)之后,请致电:
if (isResumed())
setListShown(true);
else
setListShownNoAnimation(true);
答案 1 :(得分:0)
您可以使用AsyncTask填充ListFragment,如下所示:
private class fillFragmentList extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... arg0) {
// Heavy code
return null;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
// Set the list adapter
setListAdapter(yourCustomAdapter);
}
}
此类应该在扩展ListFragment的类中。