我是Android新手,我检查getCount()
方法返回的值大于0,但getView()
和getItem()
方法都未得到执行。Android:自定义的适配器不调用getView方法
这里是我的适配器类
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被调用吗? – Nanoc
你的适配器的构造函数是Context和List,但你用getActivity()调用它;改为使用getApplicationContext(); –