package com.linju.android_property.servicemanager; import java.util.List; import roboguice.inject.InjectExtra; import roboguice.inject.InjectView; import android.app.Dialog; import android.os.Bundle; import android.text.Html; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.Spinner; import com.linju.android_property.activity.LoginActivity; import com.linju.android_property.adapter.RepairAdapter; import com.linju.android_property.adapter.repair_img_adapter; import com.linju.android_property.adapter.spinner_adapter; import com.linju.android_property.application.AppApplication; import com.linju.android_property.base.BaseActivity; import com.linju.android_property.cache.ConfigCache; import com.linju.android_property.dialog.AlertDialog; import com.linju.android_property.dialog.Effectstype; import com.linju.android_property.entity.GetEmployeeBean; import com.linju.android_property.entity.Login_Bean; import com.linju.android_property.entity.Talk_repair_Bean; import com.linju.android_property.utils.BasicMember; import com.linju.android_property.utils.ParseJson; import com.linju.android_property.utils.RequestURL; import com.linju.android_property.viewutils.NoScorllGridView; import com.linju.android_property.viewutils.Progress_Dialog; import com.linju.android_property.viewutils.Toaster; import com.linju.android_property.viewutils.WPTextView; import com.linju.android_property2.R; import com.loopj.android.http.AsyncHttpResponseHandler; import com.loopj.android.http.RequestParams; /** * 维修详细分配 * @author Administrator * */ public class RepairInfo extends BaseActivity implements OnClickListener{ public static final String EXTRAOBJ = "repair:obj"; private List<GetEmployeeBean> positionList; //部门 private List<GetEmployeeBean> position_pos_list; //职位 @InjectExtra(value = EXTRAOBJ,optional = true) Talk_repair_Bean bean; @InjectView(R.id.back) Button back; @InjectView(R.id.title) WPTextView titlebar; @InjectView(R.id.edit_or_add) Button editOrAdd; //文本组件 @InjectView(R.id.titles) WPTextView title; @InjectView(R.id.type) WPTextView type; @InjectView(R.id.man) WPTextView man; @InjectView(R.id.address) WPTextView address; @InjectView(R.id.tel) WPTextView tel; @InjectView(R.id.date) WPTextView date; @InjectView(R.id.repairInfo) WPTextView repairInfo; @InjectView(R.id.status) WPTextView status; @InjectView(R.id.send) WPTextView tasksend; @InjectView(R.id.Photogridview) NoScorllGridView photoGrid; @InjectView(R.id.repair_position) Spinner sp; @InjectView(R.id.repair_response) Spinner rs; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_repair_info); titlebar.setText(getString(R.string.repair_task)); back.setOnClickListener(this); tasksend.setOnClickListener(this); initdata(); // 建立数据源 // String[] mItems = getResources().getStringArray(R.array.spinnername); // ArrayAdapter<String> _Adapter=new ArrayAdapter<String>(this,R.layout.itme, mItems); // //绑定 Adapter到控件 // sp.setAdapter(_Adapter); // rs.setAdapter(_Adapter); } //初始化数据 private void initdata(){ title.setText(bean.getTitle().trim()); man.setText(bean.getUser_name().trim()); address.setText(bean.getHouse_number().trim()); tel.setText(bean.getCall().trim()); date.setText(bean.getCreated_at().trim()); repairInfo.setText(bean.getContent().trim()); status.setText(bean.getStatus().trim()); //初始化img if(bean.getImages()!= null && bean.getImages().size() > 0){ repair_img_adapter adapter = new repair_img_adapter(this,bean.getImages()); photoGrid.setAdapter(adapter); } getPosition(); } //获取部门信息 private void getPosition(){ RequestParams params = new RequestParams(); params.put(Login_Bean.USER_SUBDISTRICTADDRESSID, LoginActivity .getUser().getSubdistrict_address_id()); params.put(BasicMember.POSITION_TYPE, BasicMember.position); //请求时候的dialog final Dialog mDialog = Progress_Dialog.createDialogPro(this, getResources().getString(R.string.app_loading)); AppApplication.getHttpClient().get(RequestURL.GET_POSITION,params, new AsyncHttpResponseHandler(){ private boolean isSuc = false; @Override public void onStart() { mDialog.show(); } @Override @Deprecated public void onSuccess(String content) { parsePosition(content,1); //解析返回的数据 isSuc = true; } @Override @Deprecated public void onFailure(Throwable error) { if(mDialog != null && mDialog.isShowing()){ mDialog.dismiss(); } Toaster.showOneToast(R.string.app_loading_fail); isSuc = false; } @Override public void onFinish() { if(mDialog != null && mDialog.isShowing()){ mDialog.dismiss(); } } }); } /** * * @param jsonString 服务器json数据 * @param type 判断是部门还是责任人的类型 1=部门 2=责任人 */ private void parsePosition(String jsonString,int type){ if(type == 1){ positionList = ParseJson.getEmployeeData(jsonString); //获取到了部门的信息 再接下来获取部门内部人员的信息 首先设置初始化的时候默认的值 if(positionList != null ){ spinner_adapter adapter = new spinner_adapter(this, positionList); sp.setAdapter(adapter); sp.setOnItemSelectedListener(new spinnerItem()); getPostionPos(positionList.get(0).getId()); } }else if(type == 2){ //责任人 spinner_adapter adapter = null; position_pos_list = ParseJson.getEmployeeData(jsonString); //获取到了部门的信息 再接下来获取部门内部人员的信息 首先设置初始化的时候默认的值 if(position_pos_list != null ){ adapter = new spinner_adapter(this, position_pos_list); rs.setAdapter(adapter); } } } //获取部门内部人员信息 private void getPostionPos(String id){ RequestParams params = new RequestParams(); params.put(Login_Bean.USER_SUBDISTRICTADDRESSID, LoginActivity .getUser().getSubdistrict_address_id()); params.put(BasicMember.POSITION_DEPARTMENT_ID, id); //请求时候的dialog final Dialog mDialog = Progress_Dialog.createDialogPro(this, getResources().getString(R.string.app_loading)); AppApplication.getHttpClient().get(RequestURL.REPAIR_DISTRIBUTED,params, new AsyncHttpResponseHandler(){ private boolean isSuc = false; @Override public void onStart() { mDialog.show(); } @Override @Deprecated public void onSuccess(String content) { parsePosition(content,2); //解析返回的数据 isSuc = true; } @Override @Deprecated public void onFailure(Throwable error) { if(mDialog != null && mDialog.isShowing()){ mDialog.dismiss(); } Toaster.showOneToast(R.string.app_loading_fail); isSuc = false; } @Override public void onFinish() { if(mDialog != null && mDialog.isShowing()){ mDialog.dismiss(); } } }); } //点击事件 @Override public void onClick(View v) { switch (v.getId()) { case R.id.back: onBackPressed(); break; case R.id.send: if(sp.getSelectedItem() == null){ new AlertDialog(this).builder() .setMsg("请选择部门!") .withDuration(100) .withEffect(Effectstype.Slideleft) .setNegativeButton("确定", new OnClickListener() { @Override public void onClick(View v) { } }).show(); return; } GetEmployeeBean position = (GetEmployeeBean)sp.getSelectedItem(); if(rs.getSelectedItem() == null){ new AlertDialog(this).builder() .setMsg("请选择责任人,如无,请更换部门!") .withDuration(100) .withEffect(Effectstype.Slideleft) .setNegativeButton("确定", new OnClickListener() { @Override public void onClick(View v) { } }).show(); return; } GetEmployeeBean man = (GetEmployeeBean)rs.getSelectedItem(); String positionmsg = position.getName(); String positionman = man.getName(); new AlertDialog(this).builder().setTitle("分配任务") //用HTML工具类给某些文字加上颜色 .setMsg(Html.fromHtml("分配任务给"+"<font color='red'>"+positionmsg+"</font>"+"的"+"<font color='red'>"+positionman+"</font>")) .withDuration(100) .withEffect(Effectstype.Slideleft) .setPositiveButton("确认分配", new OnClickListener() { @Override public void onClick(View v) { } }).setNegativeButton("取消", new OnClickListener() { @Override public void onClick(View v) { } }).show(); break; default: break; } } //spinner下拉的点击事件 class spinnerItem implements OnItemSelectedListener{ @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { GetEmployeeBean bean = positionList.get(position); getPostionPos(bean.getId()); } @Override public void onNothingSelected(AdapterView<?> parent) { } } }