android listview不运行getView
package com.dengq.caigou;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import com.deng.service.DataNewsService;
import com.dengq.caigou.bean.DataField;
import com.dengq.main.R;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
public class CaigouActivity extends Activity {
ListView lstCaigou = null;
EditText edtFind;
List<HashMap<String, Object>> data = null;
//将数据加载到ArrayList数组里面,再在自定义适配器里面将数据加载进去
ArrayList<String> stdno = new ArrayList<String>();
ArrayList<String> nameList = new ArrayList<String>();
ArrayList<String> qgrList = new ArrayList<String>();
ArrayList<Integer> num = new ArrayList<Integer>();
String sSql = "select top 10 F_ZDBH,F_WareName ,F_Num,F_qgr from T_Caigou ";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_caigou);
lstCaigou = (ListView) findViewById(R.id.lstCaigou);
edtFind = (EditText) findViewById(R.id.edtFind);
Thread thread = new Thread(runnable);
thread.start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.caigou, menu);
return true;
}
public void findRecord(View v) {
Thread thread = new Thread(runnable);
thread.start();
}
Runnable runnable = new Runnable() {
@Override
public void run() {
String sFind = edtFind.getText().toString();
if (sFind.equals("")) {
} else {
sSql = sSql + " where F_warename='" + sFind + "'";
}
//post提交数据然后获取json数据
getDataField(sSql);
Log.d("sql", sSql);
}
};
public void getDataField(String sSql) {
try {
//提交数据请求
List<DataField> dataFields = DataNewsService.postJSONLastNews(sSql,
"T_caigou");
data = new ArrayList<HashMap<String, Object>>();
for (DataField daField : dataFields) {
HashMap<String, Object> item = new HashMap<String, Object>();
item.put("stdNo", daField.getStdNo());
item.put("cName", daField.getFieldname());
item.put("num", daField.getfNum());
item.put("qgr", daField.getQgr());
data.add(item);
Log.d("test", data.toString());
stdno.add(daField.getStdNo());
nameList.add(daField.getFieldname());
num.add(daField.getfNum());
qgrList.add(daField.getQgr());
}
////////////错误主要在这里
//获取数据后加载适配器
ListAdapter listAdapter = new ListAdapter(CaigouActivity.this);
Log.d("test", "--000--");
lstCaigou.setAdapter(listAdapter);//有时加载到这里就不向下运行
Log.d("test", "---1111--");//getCoun返回值一般是10,每次返回两次
listAdapter.notifyDataSetChanged();
CaigouActivity.this.setContentView(lstCaigou);
//////////////////////////////////////////////////////////////////
} catch (Exception e) {
}
}
public final class ViewHolder {
public TextView stdNo;
public TextView name;
public TextView num;
public TextView qgr;
}
class ListAdapter extends BaseAdapter {
private LayoutInflater mInflater;
private ViewHolder holder = null;
public ListAdapter(Context context) {
this.mInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
Log.d("testgetCount", String.valueOf(nameList.size()));
return nameList.size();
}
@Override
public Object getItem(int position) {
Log.d("testgetItem", String.valueOf(nameList.get(position)));
return nameList.get(position);
}
@Override
public long getItemId(int position) {
Log.d("getItemIdtest", String.valueOf(position));
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Log.d("test", "0001");
if (convertView == null) {
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.caigoulist, null);
holder.stdNo = (TextView) convertView.findViewById(R.id.stdNo);
holder.name = (TextView) convertView.findViewById(R.id.name);
holder.num = (TextView) convertView.findViewById(R.id.num);
holder.qgr = (TextView) convertView.findViewById(R.id.qgr);
convertView.setTag(holder);
Log.d("test", "0001-1");
} else {
holder = (ViewHolder) convertView.getTag();
}
//将ArrayList的数据加载到适配器里
Log.d("test", "0002");
final String s = (String) stdno.get(position);
holder.stdNo.setText(s);
final String s1 = (String) nameList.get(position);
holder.name.setText(s1);
final String s2 = (String) qgrList.get(position);
holder.qgr.setText(s2);
final Integer integer = (Integer) num.get(position);
holder.num.setText(integer);
Log.d("test", "0003");
return convertView;
}
}
}
public class DataField {
private String stdNo;
private String fieldname;
private int fNum;
private String qgr;
public DataField(String stdNo, String fieldname, int fNum, String qgr) {
super();
this.stdNo = stdNo;
this.fieldname = fieldname;
this.fNum = fNum;
this.qgr = qgr;
}
public String getQgr() {
return qgr;
}
public void setQgr(String qgr) {
this.qgr = qgr;
}
public String getStdNo() {
return stdNo;
}
public void setStdNo(String stdNo) {
this.stdNo = stdNo;
}
public String getFieldname() {
return fieldname;
}
public void setFieldname(String fieldname) {
this.fieldname = fieldname;
}
public int getfNum() {
return fNum;
}
public void setfNum(int fNum) {
this.fNum = fNum;
}
}