我解析的JSON数据不能显示到listView上!!

qq_35176140 2016-05-31 02:21:05



这是我的搜索界面


package com.example.peterliqi.moneyc;

import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Toast;

import com.example.peterliqi.moneyc.LEI.SearchService;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;

/**
* Created by Peterliqi on 5/16/2016.
*/
public class SearchActivity extends Activity {


StringBuilder str = new StringBuilder("");
StringBuilder sts = new StringBuilder("");

private Button submit;
private Button backcheck;
private EditText sn1;
private EditText owner1;
private TextView tld;

private EditText dayFrom1;
private TextView tk1;
private ListView lv;
private EditText show;
private EditText show1;
private ArrayList<HashMap<String, Object>> listData;






@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sarch);

sn1 = (EditText) findViewById(R.id.csn);
owner1 = (EditText) findViewById(R.id.cowner);
lv = (ListView) findViewById(R.id.listview);



//ListView 的数据来源于数据适配器



Button dateBn = (Button) findViewById(R.id.dateBn);
Button dateBn1 = (Button) findViewById(R.id.dateBn1);
backcheck = (Button) findViewById(R.id.backcheck);
tk1=(TextView) findViewById(R.id.tk);

Spinner spinner = (Spinner) findViewById(R.id.spinner2);

spinner.getSelectedItem();
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int pos, long id) {

// String[] languages = getResources().getStringArray(R.array.ctype);
String TP = parent.getItemAtPosition(pos).toString();
tk1.setText(TP);

}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// Another interface callback
}
});
}






public void backccc(View view) {

final String sn = sn1.getText().toString().trim();
final String owner = owner1.getText().toString().trim();
final String SNStatus = tk1.getText().toString().trim();
final String dayFrom = show.getText().toString().trim();
final String dayTo = show1.getText().toString().trim();
new Thread(){
public void run(){

final String fanhui= SearchService.Searchservice(sn,owner,SNStatus,dayFrom,dayTo);
if (fanhui!=null){
runOnUiThread(new Runnable() {
@Override
public void run() {


try {
JSONObject jsonObjs = new JSONObject(fanhui);

JSONArray jsonObja=jsonObjs.getJSONArray("data");
listData = new ArrayList<HashMap<String, Object>>();
for (int i = 0;i<jsonObja.length();i++) {

JSONObject jsonObj=jsonObja.getJSONObject(i);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("id",jsonObj.getInt("id"));
map.put("userName",jsonObj.getString("userName"));
map.put("SN",jsonObj.getString("SN"));
map.put("checkin_reason",jsonObj.getString("checkin_reason"));
map.put("station",jsonObj.getString("station"));
map.put("BU",jsonObj.getString("BU"));
map.put("agingDay",jsonObj.getString("agingDay"));
map.put("checkinDate",jsonObj.getString("checkinDate"));
map.put("checkoutDate",jsonObj.getString("checkoutDate"));;
map.put("SNStatus",jsonObj.getString("SNStatus"));
map.put("owner",jsonObj.getString("owner"));
map.put("createDate",jsonObj.getString("createDate"));
map.put("checkinTimes",jsonObj.getString("checkinTimes"));
listData.add(map);

}


} catch (JSONException e1) {
throw new RuntimeException(e1);
}
Message msg = new Message();
msg.what = 0;
handler.sendMessage(msg);


}

});
}
else {
Message msg = new Message();
msg.what = 1;
handler.sendMessage(msg);


}


}


}.start();


}


public Handler handler= new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
try {
switch(msg.what)
{
case 0:
MylvAdapter lvAdapter = new MylvAdapter(SearchActivity.this, listData);
lv.setAdapter(lvAdapter);
break;
case 1:
Toast.makeText(SearchActivity.this, "<JSON>", Toast.LENGTH_SHORT).show();
System.out.println("<JSON>");
break;
default:
break;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
super.handleMessage(msg);
}
};
}




...全文
218 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jklwan 2016-05-31
  • 打赏
  • 举报
回复
在getview方法中,修改代码如下。

ViewHolder viewHolder = null;
        if (convertView == null){
            convertView = inflater.inflate(R.layout.list_item,null);
           viewHolder = new ViewHolder();
            viewHolder.tv1=(TextView)convertView.findViewById(R.id.userming);
             viewHolder.tv2=(TextView)convertView.findViewById(R.id.xvliehao);
             viewHolder.tv3=(TextView)convertView.findViewById(R.id.cheliyou);
            viewHolder.tv4=(TextView)convertView.findViewById(R.id.gongzhan);
            viewHolder.tv5=(TextView)convertView.findViewById(R.id.bumen);
            viewHolder.tv6=(TextView)convertView.findViewById(R.id.xianggerizi);
            viewHolder.tv7=(TextView)convertView.findViewById(R.id.chekinshij);
            viewHolder.tv8=(TextView)convertView.findViewById(R.id.outtime);
            viewHolder.tv9=(TextView)convertView.findViewById(R.id.zhuangtai);
            viewHolder.tv10=(TextView)convertView.findViewById(R.id.owneraa);
            viewHolder.tv11=(TextView)convertView.findViewById(R.id.creashijian);
            viewHolder.tv12=(TextView)convertView.findViewById(R.id.cishu);
            convertView.setTag(viewHolder);
        }
        else {
            viewHolder = (ViewHolder) convertView.getTag();
        }
你定义了viewholder,却没有初始化,也没有使用
qq_35176140 2016-05-31
  • 打赏
  • 举报
回复
{"data":[{"id":75,"userName":"f1321801","SN":"ggg","checkin_reason":"Failure analysis","station":"SMT","BU":"SRGBU","agingDay":12,"checkinDate":"2016-05-19 02:02:58","checkoutDate":"","SNStatus":"check in","owner":"gggg","createDate":"2016-05-19 02:02:58","checkinTimes":1},{"id":80,"userName":"f1321801","SN":"dfsgh","checkin_reason":"Failure analysis","station":"SMT","BU":"SRGBU","agingDay":"","checkinDate":"2016-05-31 06:29:22","checkoutDate":"2016-05-31 06:29:24","SNStatus":"check out","owner":"gggg","createDate":"2016-05-31 06:29:22","checkinTimes":1}]} 有时候查询的时候是几十笔数据。 大概就是这种格式的。。。 我是自学的。。搞了很多天没弄明白。。也没人教。。求帮忙。。 谢谢
qq_35176140 2016-05-31
  • 打赏
  • 举报
回复

这是ListView的样式。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/userming"
        android:singleLine="true"
        android:ellipsize="end"
        android:text="."
        android:textColor="#000000"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/xvliehao"
        android:singleLine="true"
        android:ellipsize="end"
        android:text="."
        android:textColor="#000000"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/cheliyou"
        android:singleLine="true"
        android:ellipsize="end"
        android:text="."
        android:textColor="#000000"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/gongzhan"
        android:singleLine="true"
        android:ellipsize="end"
        android:text="."
        android:textColor="#000000"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/bumen"
        android:singleLine="true"
        android:ellipsize="end"
        android:text="."
        android:textColor="#000000"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/xianggerizi"
        android:singleLine="true"
        android:ellipsize="end"
        android:text="."
        android:textColor="#000000"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/chekinshij"
        android:singleLine="true"
        android:ellipsize="end"
        android:text="."
        android:textColor="#000000"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/outtime"
        android:singleLine="true"
        android:ellipsize="end"
        android:text="."
        android:textColor="#000000"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/zhuangtai"
        android:singleLine="true"
        android:ellipsize="end"
        android:text="."
        android:textColor="#000000"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/owneraa"
        android:singleLine="true"
        android:ellipsize="end"
        android:text="."
        android:textColor="#000000"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/creashijian"
        android:singleLine="true"
        android:ellipsize="end"
        android:text="."
        android:textColor="#000000"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/cishu"
        android:singleLine="true"
        android:ellipsize="end"
        android:text="."
        android:textColor="#000000"
        />
    
    

</LinearLayout>
qq_35176140 2016-05-31
  • 打赏
  • 举报
回复
这是MylvAdapter

package com.example.peterliqi.moneyc;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.HashMap;

/**
 * Created by Peterliqi on 5/31/2016.
 */
public class MylvAdapter extends BaseAdapter {
    private LayoutInflater inflater;
    static ArrayList<HashMap<String, Object>> listData;

    public MylvAdapter(SearchActivity context, ArrayList<HashMap<String, Object>> listData) {
        super();
        this.inflater= LayoutInflater.from(context);
        this.listData = listData;

    }


    @Override
    public int getCount() {
        return listData.size();
    }

    @Override
    public Object getItem(int position) {
        return listData.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }
    class ViewHolder{

        TextView tv1,tv2,tv3,tv4,tv5,tv6,tv7,tv8,tv9,tv10,tv11,tv12;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder viewHolder = null;

        if (convertView == null){


            convertView = inflater.inflate(R.layout.list_item,null);
            TextView tv1=(TextView)convertView.findViewById(R.id.userming);
            TextView tv2=(TextView)convertView.findViewById(R.id.xvliehao);
            TextView tv3=(TextView)convertView.findViewById(R.id.cheliyou);
            TextView tv4=(TextView)convertView.findViewById(R.id.gongzhan);
            TextView tv5=(TextView)convertView.findViewById(R.id.bumen);
            TextView tv6=(TextView)convertView.findViewById(R.id.xianggerizi);
            TextView tv7=(TextView)convertView.findViewById(R.id.chekinshij);
            TextView tv8=(TextView)convertView.findViewById(R.id.outtime);
            TextView tv9=(TextView)convertView.findViewById(R.id.zhuangtai);
            TextView tv10=(TextView)convertView.findViewById(R.id.owneraa);
            TextView tv11=(TextView)convertView.findViewById(R.id.creashijian);
            TextView tv12=(TextView)convertView.findViewById(R.id.cishu);
            convertView.setTag(viewHolder);
        }
        else {
            viewHolder = (ViewHolder) convertView.getTag();
        }


    try {
        String userST=listData.get(position).get("userName").toString();
        String snST=listData.get(position).get("SN").toString();
        String checkin_reasonST=listData.get(position).get("checkin_reason").toString();
        String stationST=listData.get(position).get("station").toString();
        String buST=listData.get(position).get("BU").toString();
        String agingDayST=listData.get(position).get("agingDay").toString();
        String checkinDateST=listData.get(position).get("checkinDate").toString();
        String checkoutDateST=listData.get(position).get("checkoutDate").toString();
        String SNSST=listData.get(position).get("SNStatus").toString();
        String ownST=listData.get(position).get("owner").toString();
        String creatST=listData.get(position).get("createDate").toString();
        String checkinST=listData.get(position).get("checkinTimes").toString();


        viewHolder.tv1.setText(userST);
        viewHolder.tv2.setText(snST);
        viewHolder.tv3.setText(checkin_reasonST);
        viewHolder.tv4.setText(stationST);
        viewHolder.tv5.setText(buST);
        viewHolder.tv6.setText(agingDayST);
        viewHolder.tv7.setText(checkinDateST);
        viewHolder.tv8.setText(checkoutDateST);
        viewHolder.tv9.setText(SNSST);
        viewHolder.tv10.setText(ownST);
        viewHolder.tv11.setText(creatST);
        viewHolder.tv12.setText(checkinST);

    }catch (Exception e){
        e.printStackTrace();
    }





        return convertView;
    }
}

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧