package com.wb.sc.adapter; import java.util.ArrayList; import java.util.List; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.net.Uri; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.GridView; import android.widget.ImageView; import android.widget.TextView; import com.android.volley.toolbox.NetworkImageView; import com.common.widget.ToastHelper; import com.wb.sc.R; import com.wb.sc.app.SCApp; import com.wb.sc.bean.CategoryTable; import com.wb.sc.bean.MyRepair.MyRepairItem; import com.wb.sc.bean.User; import com.wb.sc.config.NetConfig; import com.wb.sc.mk.personal.MyComplaintActivity; import com.wb.sc.widget.CircleImageView; public class MyComplaintAdpater extends BaseAdapter { private Context mContext; private List<MyRepairItem> mList; private List<MyRepairItem> mfilter = new ArrayList<MyRepairItem>(); private int statue; public MyComplaintAdpater(Context mContext, List<MyRepairItem> list ) { this.mContext = mContext; this.mList = list; this.mfilter.addAll(list); } @Override public int getCount() { return mfilter.size(); } @Override public Object getItem(int arg0) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int arg0) { // TODO Auto-generated method stub return 0; } @Override public void notifyDataSetChanged() { setStatue(statue); super.notifyDataSetChanged(); } @Override public View getView(int position, View arg1, ViewGroup arg2) { // TODO Auto-generated method stub ViewHolder viewHolder; MyRepairItem repair = (MyRepairItem) mfilter.get(position); if(arg1 == null){ viewHolder = new ViewHolder(); arg1 = LayoutInflater.from(mContext).inflate(R.layout.itme_my_complaint, null); viewHolder.gridView = (GridView) arg1.findViewById(R.id.yipay_server); viewHolder.state = (Button) arg1.findViewById(R.id.state); viewHolder.start_time = (TextView) arg1.findViewById(R.id.start_time); viewHolder.hanle_time = (TextView) arg1.findViewById(R.id.hanle_time); viewHolder.finish_time = (TextView) arg1.findViewById(R.id.finish_time); viewHolder.title = (TextView) arg1.findViewById(R.id.title); viewHolder.content = (TextView) arg1.findViewById(R.id.content); viewHolder.progress = (TextView) arg1.findViewById(R.id.tip_progress); viewHolder.networkImageView = (CircleImageView) arg1.findViewById(R.id.collection_goods_icon); viewHolder.name = (TextView) arg1.findViewById(R.id.name); // viewHolder.district_address = (TextView) arg1.findViewById(R.id.district_address); // viewHolder.call = (ImageView) arg1.findViewById(R.id.call); arg1.setTag(viewHolder); }else{ viewHolder = (ViewHolder) arg1.getTag(); } // SentHome sentHome = (SentHome) mList.get(position); viewHolder.title.setText(repair.repairTitle); viewHolder.content.setText(repair.repairContent); viewHolder.state.setText(repair.repairStatusName); viewHolder.hanle_time.setText(repair.repairHanldeTime); if ("01".equals(repair.repairStatus)) { // 未处理 viewHolder.finish_time.setText(""); viewHolder.state.setBackgroundResource(R.drawable.shouli); viewHolder.progress.setVisibility(View.GONE); } else if ("02".equals(repair.repairStatus)) { // 处理中 viewHolder.finish_time.setText(repair.repairSubmitTime); viewHolder.state.setBackgroundResource(R.drawable.shouli); viewHolder.progress.setVisibility(View.VISIBLE); } else if ("03".equals(repair.repairStatus)) { // 已处理 viewHolder.finish_time.setText(repair.repairEndTime); viewHolder.state.setBackgroundResource(R.drawable.chuli); viewHolder.progress.setVisibility(View.GONE); } if (repair.repairPhoto.length > 1) { List<CategoryTable> list = new ArrayList<CategoryTable>(); int resId [] = {R.drawable.test_my_complaint_one, R.drawable.test_my_complaint_two}; for (int i = 0; i < repair.repairPhoto.length; i++) { CategoryTable categroy = new CategoryTable(); // categroy.setId(resId[i]); categroy.setCategorylogo(repair.repairPhoto[i]); list.add(categroy); } ImageAdapter adapter = new ImageAdapter(mContext, list); viewHolder.gridView.setAdapter(adapter); viewHolder.gridView.setVisibility(View.VISIBLE); } else { viewHolder.gridView.setVisibility(View.GONE); } User user = SCApp.getInstance().getUser(); if (user.getAvatarUrl() != null && !"".equals(user.getAvatarUrl())) { SCApp.getInstance().getCommLoader().displayImage(NetConfig.getPictureUrl(user.getAvatarUrl()), viewHolder.networkImageView , 39, null); } // viewHolder.networkImageView.setDefaultImageResId(sentHome.resId); // viewHolder.networkImageView.setErrorImageResId(sentHome.resId); // if(sentHome.url != null && !sentHome.url.equals("")) { // viewHolder.networkImageView.setImageUrl(NetConfig.getPictureUrl(sentHome.url), // SCApp.getInstance().getImageLoader()); // } // viewHolder.call.setOnClickListener(new View.OnClickListener() { // // @Override // public void onClick(View arg0) { // createAlterDialog("", "15980000000"); // } // }); viewHolder.name.setText(user.name); viewHolder.start_time.setText(repair.repairSubmitTime); // viewHolder.district_address.setText(sentHome.category); return arg1; } public class ViewHolder { public CircleImageView networkImageView; public TextView name; public TextView district_address; public ImageView call; public GridView gridView; public Button state; public TextView start_time; public TextView finish_time; public TextView hanle_time; public TextView progress; public TextView content; public TextView title; } private void createAlterDialog(String name, final String phoneNum) { AlertDialog.Builder builder = new Builder(mContext); builder.setMessage(phoneNum); builder.setTitle(name); builder.setPositiveButton("呼叫", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { callPhone(phoneNum.split("/")[0]); // dialog.dismiss(); } }); builder.setNegativeButton("取消", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.create().show(); } private void callPhone(String phoneNum) { Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phoneNum)); mContext.startActivity(intent); } public int getStatue() { return statue; } public void setStatue(int statue) { this.statue = statue; mfilter.clear(); if (statue >= 1) { for (MyRepairItem item : mList) { // 01 未处理 02处理中 03 已处理 if (("0" + (statue + 1)).equals(item.repairStatus)) { mfilter.add(item); } } } else { mfilter.addAll(mList); } if (mfilter.size() == 0) { String tips = null; if (statue == 0) { tips = "全部"; } else if (statue == 1) { tips = "已受理"; } else if (statue == 2) { tips = "已处理"; } if (tips != null) { ToastHelper.showToastInBottom(mContext, "无"+ tips +"工单数据"); } } } }