解决方案 »

  1.   

    ]LZ,不光贴出来jason串有啥用啊重要的是你得java代码啊
      

  2.   

    ]LZ,不光贴出来jason串有啥用啊重要的是你得java代码啊Activity 中还存在评价的接口和回复的接口,这里只写了‘浏览评价回复’的接口
    public class DetailActivity1  extends Activity{
    private Context mContext = DetailActivity1.this;
    private DetailAdapter1 mAdapter;
    private List<PingjiaModel> mList = new ArrayList<PingjiaModel>();
    private String uiName;
    private String uiUser;
    ExpandableListView expandableListView;@Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.detail_activity);

    //获得listView 布局
    expandableListView = (ExpandableListView) findViewById(R.id.ExpandableListView01);
                            text_ping = (TextView) findViewById(R.id.text_ping);              //日志的id
    if (getIntent().getStringExtra("uuid")==null) {
    System.out.println("接收到全部日志的ui为空");
    }
    else {
    uiName = getIntent().getStringExtra("uuid");
    }
        //创建人的id
    if (getIntent().getStringExtra("User")==null) {
    System.out.println("接收到创建人的id为空");
    }
    else {
    uiUser = getIntent().getStringExtra("User");
    }
    text_ping.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View arg0) {
    buildAppData();
    }
    }); //浏览评价
      buildAppData();
    } * 浏览评价和回复的数据
     */
    public void buildAppData(){
    //从rihzi 中传来actuuid评价的行动id
    final String actuuid = uiName;
    //被评价人的id
    TaskManagerFactory.createDataTaskManager().addTask(new ITask() {
    @Override
    public void onTaskNumChanged(int arg0) {
    }

    @Override
    public void execute() {
    String jsonData = NetUtil.pingjia(mContext, "Actinfo",
    ShareUtil.getSessionid(mContext),
    "1", actuuid,"1.1");
    try{
    if (jsonData !=null) {
    final BaseBean base = JsonUtil.base(jsonData);
    final PingjiaBean pingInfo = JsonUtil.PingInfo(jsonData);

    runOnUiThread(new Runnable() {

    @Override
    public void run() {
    if (base !=null && "0000".equals(base.getRespCode())) {
    if (pingInfo.getInfo() != null) {
    //img_nodata.setVisibility(View.GONE);
     
    mList = pingInfo.getInfo();
    mAdapter = new DetailAdapter1(mContext, (ArrayList<PingjiaModel>) mList);
    expandableListView.setAdapter(mAdapter);
    //默认展开 
    int groupCount = expandableListView.getCount();
     
    for (int i = 0; i < groupCount; i++) {
    expandableListView.expandGroup(i);
      }

    }else {
    img_nodata.setVisibility(View.VISIBLE);
    expandableListView.setVisibility(View.GONE);
    }
    }
    else {
    if ("暂无消息".equals(base.getRespMsg())) {
    img_nodata.setVisibility(View.VISIBLE);
    }else {
    Toast.makeText(mContext, "暂无信息", Toast.LENGTH_SHORT).show();
    }
    }
    }
    });
    }
    else {
    img_nodata.setVisibility(View.VISIBLE);
    startActivity(new Intent(mContext,LoginActivity.class));
    finish();
    }
    } catch (Exception e) {
    }
    }
    });
     
    /*
     * expandableListView 的监听事件 点击弹出输入框  输入 回复内容
     */
    expandableListView.setOnGroupClickListener(new OnGroupClickListener() {
      AlertDialog alertDialog = null;
    @Override
    public boolean onGroupClick(ExpandableListView parent, View v, final int groupPosition,
    long id) {
    View editView  = View.inflate(mContext, R.layout.detail_huifu_edit, null);
    AlertDialog.Builder builder = new Builder(mContext);
    TextView txt_title= (TextView) editView.findViewById(R.id.textView1);
    txt_title.setText("回  复");
    edit_reply = (EditText) editView.findViewById(R.id.edit_reply);
    //多行出入文本 
    edit_reply.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);
    edit_reply.setSingleLine(false);

    TextView text_reply = (TextView) editView.findViewById(R.id.text_reply);
    text_reply.setText("确定");
    text_reply.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View arg0) {

    if (String.valueOf(edit_reply.getText()) ==null||"".equals(String.valueOf(edit_reply.getText()))) {
    Toast.makeText(mContext, "内容不能为空", Toast.LENGTH_SHORT).show();
    }
    else {
    //回复的接口 把浏览评价中的uuid evaluateuseid 传递给回复的接口
    reply(mList.get(groupPosition).getEvaluateuseid(),mList.get(groupPosition).getUuid());

    }
    alertDialog.dismiss();
    }
    });
    TextView text_no= (TextView) editView.findViewById(R.id.text_no);
    text_no.setText("取消");
    text_no.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View arg0) {
    alertDialog.dismiss();
    }
    });
    alertDialog = builder.create();
    alertDialog.setView(editView, 0, 0, 0, 0);
    //alertDialog.setView(editView);
    alertDialog.show();

    return true;
    }
    });
    }}
      

  3.   

    Adapter
    package com.hb.android.adapter;
    import java.util.ArrayList;
    import java.util.List;
    import com.hb.android.activity.R;
    import com.hb.android.model.HuifuModel;
    import com.hb.android.model.PingjiaModel;
    import android.app.LauncherActivity.ListItem;
    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseExpandableListAdapter;
    import android.widget.ExpandableListView;
    import android.widget.ListAdapter;
    import android.widget.TextView;public class DetailAdapter1 extends BaseExpandableListAdapter{
    @SuppressWarnings("unused")
    private Context mContext;
    private LayoutInflater inflater;
    private ArrayList<PingjiaModel> mList;
    private List<HuifuModel> hList;
      //private EditText edit_reply; 
    public DetailAdapter1(Context mContext, ArrayList<PingjiaModel> pList ) {
    this.mContext = mContext;
     inflater = LayoutInflater.from(mContext);
     if (pList !=null) {
    mList = pList ;
    /*
     * 把hList 与mList关联起来, 做它的子控件
     */
    for (int i = 0; i < mList.size(); i++) {
    hList = mList.get(i).getReplyToEval();
    }
    }else {
    mList = new ArrayList<PingjiaModel>();

    }
    }



    @Override
    public Object getChild(int groupPosition, int childPosition) {
    // 取得与指定分组、指定子项目关联的数据  ::包含子视图的分组的位置   ""指定的分组中的子视图的位置.
    //返回   获取指定组中的指定子元素数据。
    //return hList.get(groupPosition).getReplyDate();
    return hList.get(childPosition);
    //return mList.get(groupPosition).equals(hList.get(childPosition));
    } @Override
    public long getChildId(int groupPosition, int childPosition) {
    //与子视图关联的数据.
    // 取得给定分组中给定子视图的ID. 该组ID必须在组中是唯一的.必须不同于其他所有ID(分组及子项目的ID).
    return childPosition;
    } @Override
    public View getChildView(int groupPosition, int childPosition,
    boolean isLastChild, View convertView, ViewGroup parent) {
       // 取得显示给定分组给定子位置的数据用的视图.  回复
    Itemholder itemholder = null;
    if (convertView ==null) {
      convertView = inflater.inflate(R.layout.detail_huiifu, null);
      itemholder = new Itemholder();
      itemholder.txt_replyName = (TextView) convertView.findViewById(R.id.replyName);
      itemholder.txt_EvaluateUserName = (TextView) convertView.findViewById(R.id.EvaluateUserName);
      itemholder.txt_Evaluateinfo = (TextView) convertView.findViewById(R.id.Evaluateinfo);
      itemholder.txt_replyDate = (TextView) convertView.findViewById(R.id.text_time);
        convertView.setTag(itemholder);
       }
        else 
         {
       itemholder =  (Itemholder) convertView.getTag();
        }
     
       HuifuModel huifuModel = hList.get(childPosition);
       itemholder.txt_EvaluateUserName.setText(huifuModel.getEvaluateUserName());
       itemholder.txt_Evaluateinfo.setText(huifuModel.getEvaluateinfo());
       itemholder.txt_replyName.setText(huifuModel.getReplyName());
    // 
    //  同上===
    //  PingjiaModel model = mList.get(groupPosition);
    //  ArrayList<HuifuModel> replyToEval = model.getReplyToEval();
    // HuifuModel huifuModel = replyToEval.get(childPosition);
    //  itemholder.txt_EvaluateUserName.setText(huifuModel.getEvaluateUserName());
    //  itemholder.txt_Evaluateinfo.setText(huifuModel.getEvaluateinfo());
    //  itemholder.txt_replyName.setText(huifuModel.getReplyName());
     
      return convertView;
      }

    @Override
    public int getChildrenCount(int groupPosition) {
    // 取得指定分组的子元素数.
    if (hList ==null) {
    return 0;
    }
     return hList.size();
     
    } @Override
    public Object getGroup(int groupPosition) {
    // 取得与给定分组关联的数据
    return mList.get(groupPosition);
     
    } @Override
    public int getGroupCount() {
    //指定分组的数据.
    return mList.size();
    } @Override
    public long getGroupId(int groupPosition) {
    //与分组关联的ID. 取得指定分组的ID.该组ID必须在组中是唯一的.必须不同于其他所有ID(分组及子项目的ID).
    return groupPosition;
    }
     
    @Override
    public View getGroupView(int groupPosition, boolean isExpanded,
    View convertView, ViewGroup parent) {
     
    ViewHolder holder = null;
    if (convertView ==null) {
    //浏览评价显示的内容
    convertView = inflater.inflate(R.layout.detail_item, null);
    holder = new ViewHolder();
    holder.txt_user = (TextView) convertView.findViewById(R.id.evaluateUser);
    holder.txt_info = (TextView) convertView.findViewById(R.id.Evaluateinfo1);
    holder.txt_daText= (TextView) convertView.findViewById(R.id.evaluateDate);   convertView.setTag(holder);
      
      
    }else {
    holder = (ViewHolder) convertView.getTag();
    }
    //浏览评价   获得数据显示出来
    PingjiaModel model = mList.get(groupPosition);
    holder.txt_user.setText(model.getEvaluateUser());
    holder.txt_info.setText(model.getEvaluateinfo());
    holder.txt_daText.setText(model.getEvaluateDate());  
    return convertView;
    }


    @Override
    public boolean hasStableIds() {
    //是否指定分组视图及其子视图的ID对应的后台数据改变也会保持该ID.
    return true;
    } @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
    // 指定位置的子视图是否可选择.
    return true;
    }
    class ViewHolder{
     
    TextView txt_user,txt_info,txt_daText,
    txt_publishId,txt_publishName,txt_evaluateuseid,
    txt_EvaluateUserName,txt_Evaluateinfo,txt_replyName ,replyToEval
    ;
    }


    class Itemholder{
    //回复人的名字   回复的信息,被回复人的名字 被回复人的名字
    TextView txt_EvaluateUserName,txt_Evaluateinfo,txt_replyName ,txt_replyuserid
    ,txt_replyDate,txt_uuid
    ;
    }
    }
      

  4.   

    这是PingjiaModelpublic class PingjiaModel implements Serializable { private static final long serialVersionUID = 222333399800000089L;

    private String Evaluateinfo;//评价信息
    private String evaluateUser;//评价人
    private String evaluateDate;//评价时间
    private String uuid;//这条评价ID
    private String evaluateuseid;//评价人的id
    private String publishId;//被评价人的id(回复人的id
    private String publishName;//被评价人的 回复的人
    private ArrayList<HuifuModel> replyToEval;//回复的list 每条表示一个
    public String getEvaluateinfo() {
    return Evaluateinfo;
    }
    public void setEvaluateinfo(String evaluateinfo) {
    Evaluateinfo = evaluateinfo;
    }
    public String getEvaluateUser() {
    return evaluateUser;
    }
    public void setEvaluateUser(String evaluateUser) {
    this.evaluateUser = evaluateUser;
    }
    public String getEvaluateDate() {
    return evaluateDate;
    }
    public void setEvaluateDate(String evaluateDate) {
    this.evaluateDate = evaluateDate;
    }
    public String getUuid() {
    return uuid;
    }
    public void setUuid(String uuid) {
    this.uuid = uuid;
    }
    public String getEvaluateuseid() {
    return evaluateuseid;
    }
    public void setEvaluateuseid(String evaluateuseid) {
    this.evaluateuseid = evaluateuseid;
    }
    public String getPublishId() {
    return publishId;
    }
    public void setPublishId(String publishId) {
    this.publishId = publishId;
    }
    public String getPublishName() {
    return publishName;
    }
    public void setPublishName(String publishName) {
    this.publishName = publishName;
    }
    public ArrayList<HuifuModel> getReplyToEval() {
    return replyToEval;
    }
    public void setReplyToEval(ArrayList<HuifuModel> replyToEval) {
    this.replyToEval = replyToEval;

    这是:HuifuModel
    private String EvaluateUserName;//被回复人的名字
    private String Evaluateinfo;//回复的信息
    private String Evaluateuserid;//被回复人的ID
    private String replyDate;//回复时间
    private String replyName;//回复人的名字
    private String replyuserid;//回复人的ID
    private String uuid;//这条回复的ID
    public String getEvaluateUserName() {
    return EvaluateUserName;
    }
    public void setEvaluateUserName(String evaluateUserName) {
    EvaluateUserName = evaluateUserName;
    }
    public String getEvaluateinfo() {
    return Evaluateinfo;
    }
    public void setEvaluateinfo(String evaluateinfo) {
    Evaluateinfo = evaluateinfo;
    }
    public String getEvaluateuserid() {
    return Evaluateuserid;
    }
    public void setEvaluateuserid(String evaluateuserid) {
    Evaluateuserid = evaluateuserid;
    }
    public String getReplyDate() {
    return replyDate;
    }
    public void setReplyDate(String replyDate) {
    this.replyDate = replyDate;
    }
    public String getReplyName() {
    return replyName;
    }
    public void setReplyName(String replyName) {
    this.replyName = replyName;
    }
    public String getReplyuserid() {
    return replyuserid;
    }
    public void setReplyuserid(String replyuserid) {
    this.replyuserid = replyuserid;
    }
    public String getUuid() {
    return uuid;
    }
    public void setUuid(String uuid) {
    this.uuid = uuid;
    }  
    }
    下面的只黏贴了有关 “浏览回复评价”的代码。NetUtil  浏览回复评价的。
     /*
     * 浏览评价及回复信息
     */
    public static String pingjia(Context context ,String submitFlag,String sessionid,String nextPage,String actuuid,String versioncode){
    ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
    params.add(new BasicNameValuePair("wm.submitFlag", submitFlag));
    params.add(new BasicNameValuePair("sessionid",sessionid));
    params.add(new BasicNameValuePair("wm.nextPage",nextPage));
    params.add(new BasicNameValuePair("actuuid",actuuid));
    params.add(new BasicNameValuePair("versioncode", versioncode));
    String result = HttpNet.requestByPost(context, test_url+"/appAct/appAct.action", params);
    System.out.println("浏览评价URL:"+test_url+"/appAct/appAct.action"+params);
    return result;
    } JsonUtil
    // 判断解析成功状态
    public static BaseBean base(String jsonData) {
    BaseBean bean = new BaseBean();
    try {
    JSONObject jsonObj = new JSONObject(jsonData)
    .getJSONObject("status");
    String respCode = jsonObj.getString("respCode");
    String respMsg = jsonObj.getString("respMsg");
    bean.setRespCode(respCode);
    bean.setRespMsg(respMsg);
    } catch (JSONException e) {
    System.out.println("Json parse error");
    e.printStackTrace();
    }
    return bean;
    }
    ///////////////////////////////
    // 浏览回复评价
    public static PingjiaBean PingInfo(String jsonData) {
    PingjiaBean bean = null;
    try {
    Type type = new TypeToken<PingjiaBean>() {
    }.getType();
    Gson gson = new Gson();
    bean = gson.fromJson(jsonData, type);
    } catch (Exception e) {
    e.printStackTrace();
    }
    return bean;
    }
    }
    这是 PingjiaBeanpublic class PingjiaBean  extends BaseBean{
    private ArrayList<PingjiaModel> info;
    public ArrayList<PingjiaModel> getInfo() {
    return info;
    }
    public void setInfo(ArrayList<PingjiaModel> info) {
    this.info = info;
    }
    }