【发布时间】:2015-12-09 10:23:47
【问题描述】:
我是 Android 新手,我检查了 getCount() 方法返回的值是否大于 0,但 getView() 和 getItem() 方法都没有被执行。
这是我的适配器类
package com.zmlogisncs.fragment;
import java.util.List;
import com.zmlogisncs.dreamove.R;
import com.zmlogisncs.vo.AppointMent;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
public class AppointAdapter extends BaseAdapter {
private Context mContext;
private List<AppointMent> mList;
public AppointAdapter(Context context,List<AppointMent> list){
mContext=context;
mList=list;
}
@Override
public int getCount() {
Log.d("ssss",mList.size()+"");
return mList.size();
}
@Override
public Object getItem(int arg0) {
return mList.get(arg0);
}
@Override
public long getItemId(int arg0) {
return arg0;
}
@Override
public View getView(int poistion, View converView, ViewGroup parent) {
if (converView==null) {
converView=LayoutInflater.from(mContext).inflate(R.layout.appoitmentlistview_item, null);
}
Log.d("ssss", "ssss");
return converView;
}
}
这是我的片段类
public class AppoitmentPeople extends ListFragment {
private View view;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getAppoitment(getActivity());
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.appoitment_people, container, false);
return view;
}
public void getAppoitment(Context mContext){
AsyncHttpClient client = new AsyncHttpClient();
RequestParams params = new RequestParams();
params.put("access_token", URLManager.ACCESS_TOKEN);
params.put("start_page", 0+"");
params.put("type", "2");
client.post(URLManager.GET_SELLERLIST, params,
new AsyncHttpResponseHandler() {
@Override
public void onSuccess(String content) {
try {
Response<List<AppointMent>> result=JsonUtil.deserialize(content, new TypeReference<Response<List<AppointMent>>>() {
});
List<AppointMent> list=result.getData();
AppointAdapter adapter=new AppointAdapter(getActivity(),list);
setListAdapter(adapter);
} catch (Exception e) {
Log.e("AppPeople", e.getMessage());
}
}
});
}
}
【问题讨论】:
-
您是否遇到任何错误?并尝试 [this.setListAdapter(adapter);]
-
你确定 getCount 被调用了吗?
-
您的适配器构造函数是 Context 和 List 但您使用 getActivity(); 调用它而是使用 getApplicationContext();
-
@ShvetChakra 抱歉,找不到 getApplicationContext() 方法
-
@Nanoc 是的,大小返回3