From 865951b7d0d0dc283d699f891f3cc89b40490434 Mon Sep 17 00:00:00 2001 From: "MSI\\wei" <861739889@qq.com> Date: Tue, 22 Aug 2017 21:38:01 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3listview=E6=BB=91=E5=8A=A8?= =?UTF-8?q?=E6=97=B6=E4=BD=8D=E7=BD=AE=E4=BC=9A=E6=94=B9=E5=8F=98=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hjx/personalcenter/activity/MainActivity.java | 16 ++-- .../activity/RegisterInfoActivity.java | 85 +++++++++++++--------- .../customdialog/CitysListDialog.java | 8 +- .../personalcenter/customdialog/CountryDialog.java | 8 +- .../customdialog/GradeListDialog.java | 8 +- .../customdialog/ProvinceListDialog.java | 8 +- .../customdialog/SchoolListDialog.java | 8 +- .../com/hjx/personalcenter/http/HttpManager.java | 29 ++++++-- .../personalcenter/interfaces/DialogCallBack.java | 24 +++++- 9 files changed, 126 insertions(+), 68 deletions(-) diff --git a/PersonalCenter/app/src/main/java/com/hjx/personalcenter/activity/MainActivity.java b/PersonalCenter/app/src/main/java/com/hjx/personalcenter/activity/MainActivity.java index 015f8d6..316001d 100644 --- a/PersonalCenter/app/src/main/java/com/hjx/personalcenter/activity/MainActivity.java +++ b/PersonalCenter/app/src/main/java/com/hjx/personalcenter/activity/MainActivity.java @@ -100,14 +100,14 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe private void initData() { //加载个人信息 - //初始化图片 - file = new File(FileUtil.getCachePath(this), "user-avatar.jpg"); - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) { - uri = Uri.fromFile(file); - } else { - //通过FileProvider创建一个content类型的Uri(android 7.0需要这样的方法跨应用访问) - uri = FileProvider.getUriForFile(MyApplication.getContext(), "com.hjx.personalcenter", file); - } +// //初始化图片 +// file = new File(FileUtil.getCachePath(this), "user-avatar.jpg"); +// if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) { +// uri = Uri.fromFile(file); +// } else { +// //通过FileProvider创建一个content类型的Uri(android 7.0需要这样的方法跨应用访问) +// uri = FileProvider.getUriForFile(MyApplication.getContext(), "com.hjx.personalcenter", file); +// } } diff --git a/PersonalCenter/app/src/main/java/com/hjx/personalcenter/activity/RegisterInfoActivity.java b/PersonalCenter/app/src/main/java/com/hjx/personalcenter/activity/RegisterInfoActivity.java index b375ab4..ddf4704 100644 --- a/PersonalCenter/app/src/main/java/com/hjx/personalcenter/activity/RegisterInfoActivity.java +++ b/PersonalCenter/app/src/main/java/com/hjx/personalcenter/activity/RegisterInfoActivity.java @@ -19,13 +19,21 @@ import com.hjx.personalcenter.customdialog.ProvinceListDialog; import com.hjx.personalcenter.customdialog.SchoolListDialog; import com.hjx.personalcenter.db.SaveParam; import com.hjx.personalcenter.interfaces.DialogCallBack; +import com.hjx.personalcenter.model.CityInfo; +import com.hjx.personalcenter.model.CountyInfo; +import com.hjx.personalcenter.model.GradeInfo; +import com.hjx.personalcenter.model.ProvinceInfo; +import com.hjx.personalcenter.model.SchoolInfo; import com.hjx.personalcenter.util.AlertUtils; +import java.util.ArrayList; + /**填写注册信息 熊巍 * Created by h on 2017/8/9. */ -public class RegisterInfoActivity extends AppCompatActivity implements View.OnClickListener,DialogCallBack.CallBack { +public class RegisterInfoActivity extends AppCompatActivity implements View.OnClickListener,DialogCallBack.GradeCallBack,DialogCallBack.ProvincesCallBack + ,DialogCallBack.CitysCallBack,DialogCallBack.CountryCallBack,DialogCallBack.SchoolCallBack{ private EditText et_username; private TextView et_region,et_grade,et_school; private Button btn_ok; @@ -103,51 +111,27 @@ public class RegisterInfoActivity extends AppCompatActivity implements View.OnCl //选择地区 private void choiseregion() { - ProvinceListDialog.getInstance(this).show(getSupportFragmentManager(), "ProvinceListDialog"); + ProvinceListDialog.getInstance((DialogCallBack.ProvincesCallBack) RegisterInfoActivity.this).show(getSupportFragmentManager(), "ProvinceListDialog"); } //选择年级 private void choisegrade() { - GradeListDialog.getInstance(this).show(getSupportFragmentManager(), "GradeListDialog"); + GradeListDialog.getInstance((DialogCallBack.GradeCallBack) this).show(getSupportFragmentManager(), "GradeListDialog"); } //选择学校 private void choiseschool() { - SchoolListDialog.getInstance(this).show(getSupportFragmentManager(), "SchoolListDialog"); + SchoolListDialog.getInstance((DialogCallBack.SchoolCallBack) this).show(getSupportFragmentManager(), "SchoolListDialog"); } @Override - public void provinceOnItemClick(AdapterView parent, View view, int position, long id,int type) { - View View = parent.getChildAt(position); - TextView Tv = (TextView)View.findViewById(R.id.list_items); - switch (type){ - - case 1: - SaveParam.getInstance().saveLoginParam(this,"sheng",Tv.getText().toString()); - CitysListDialog.getInstance(this).show(getSupportFragmentManager(), "CitysListDialog"); - break; - case 2: - String provice = SaveParam.getInstance().getLoginParam(this,"sheng"); - SaveParam.getInstance().saveLoginParam(this,"shi",Tv.getText().toString()); - CountryDialog.getInstance(this).show(getSupportFragmentManager(), "CountryDialog"); - et_region.setText(""); - et_region.setText(provice+Tv.getText().toString()); - break; - case 3: - String provices = SaveParam.getInstance().getLoginParam(this,"sheng"); - String citys = SaveParam.getInstance().getLoginParam(this,"shi"); - et_region.setText(""); - et_region.setText(provices+citys+Tv.getText().toString()); - break; - case 4: - et_school.setText(Tv.getText().toString()); - break; - case 5: - et_grade.setText(Tv.getText().toString()); - break; - } + public void provinceOnItemClick(ArrayList data, int position, int type) { + String regionName = data.get(position).getRegionName(); + SaveParam.getInstance().saveLoginParam(this,"sheng",regionName); + CitysListDialog.getInstance((DialogCallBack.CitysCallBack) this).show(getSupportFragmentManager(), "CitysListDialog"); + } @Override @@ -158,4 +142,39 @@ public class RegisterInfoActivity extends AppCompatActivity implements View.OnCl } return super.onKeyUp(keyCode, event); } + + @Override + public void province3OnItemClick(ArrayList data, int position, int type) { + String regionName = data.get(position).getName(); + et_grade.setText(regionName); + + } + + @Override + public void province1OnItemClick(ArrayList data, int position, int type) { + String regionName = data.get(position).getRegionName(); + String provice = SaveParam.getInstance().getLoginParam(this,"sheng"); + SaveParam.getInstance().saveLoginParam(this,"shi",regionName); + CountryDialog.getInstance((DialogCallBack.CountryCallBack) this).show(getSupportFragmentManager(), "CountryDialog"); + et_region.setText(""); + et_region.setText(provice+regionName); + + } + + @Override + public void province2OnItemClick(ArrayList data, int position, int type) { + String regionName = data.get(position).getRegionName(); + String provices = SaveParam.getInstance().getLoginParam(this,"sheng"); + String citys = SaveParam.getInstance().getLoginParam(this,"shi"); + et_region.setText(""); + et_region.setText(provices+citys+regionName); + + } + + @Override + public void provinceO4nItemClick(ArrayList data, int position, int type) { + String regionName = data.get(position).getSchoolName(); + et_school.setText(regionName); + + } } diff --git a/PersonalCenter/app/src/main/java/com/hjx/personalcenter/customdialog/CitysListDialog.java b/PersonalCenter/app/src/main/java/com/hjx/personalcenter/customdialog/CitysListDialog.java index 5fc1469..ff2512e 100644 --- a/PersonalCenter/app/src/main/java/com/hjx/personalcenter/customdialog/CitysListDialog.java +++ b/PersonalCenter/app/src/main/java/com/hjx/personalcenter/customdialog/CitysListDialog.java @@ -33,12 +33,12 @@ import java.util.List; public class CitysListDialog extends BaseCircleDialog implements AdapterView.OnItemClickListener { private CitysAdapter listadapter; private ListView listView; - private DialogCallBack.CallBack mCallBack; + private DialogCallBack.CitysCallBack mCallBack; private ArrayList data = new ArrayList<>(); - public CitysListDialog(DialogCallBack.CallBack callBack) { + public CitysListDialog(DialogCallBack.CitysCallBack callBack) { this.mCallBack = callBack; } - public static CitysListDialog getInstance(DialogCallBack.CallBack callBack) { + public static CitysListDialog getInstance(DialogCallBack.CitysCallBack callBack) { CitysListDialog dialogFragment = new CitysListDialog(callBack); dialogFragment.setCanceledBack(true); dialogFragment.setCanceledOnTouchOutside(true); @@ -88,7 +88,7 @@ public class CitysListDialog extends BaseCircleDialog implements AdapterView.OnI @Override public void onItemClick(AdapterView parent, View view, int position, long id) { SaveParam.getInstance().saveLoginParam(getActivity(), SaveParam.CITYS, ""+data.get(position).getRegionId()); - mCallBack.provinceOnItemClick(parent,view,position,id,2); + mCallBack.province1OnItemClick(data,position,2); dismiss(); } diff --git a/PersonalCenter/app/src/main/java/com/hjx/personalcenter/customdialog/CountryDialog.java b/PersonalCenter/app/src/main/java/com/hjx/personalcenter/customdialog/CountryDialog.java index da86975..11e99c9 100644 --- a/PersonalCenter/app/src/main/java/com/hjx/personalcenter/customdialog/CountryDialog.java +++ b/PersonalCenter/app/src/main/java/com/hjx/personalcenter/customdialog/CountryDialog.java @@ -32,12 +32,12 @@ import java.util.List; public class CountryDialog extends BaseCircleDialog implements AdapterView.OnItemClickListener { private CountryAdapter listadapter; private ListView listView; - private DialogCallBack.CallBack mCallBack; + private DialogCallBack.CountryCallBack mCallBack; private ArrayList data = new ArrayList<>(); - public CountryDialog(DialogCallBack.CallBack callBack) { + public CountryDialog(DialogCallBack.CountryCallBack callBack) { this.mCallBack = callBack; } - public static CountryDialog getInstance(DialogCallBack.CallBack callBack) { + public static CountryDialog getInstance(DialogCallBack.CountryCallBack callBack) { CountryDialog dialogFragment = new CountryDialog(callBack); dialogFragment.setCanceledBack(true); dialogFragment.setCanceledOnTouchOutside(true); @@ -88,7 +88,7 @@ public class CountryDialog extends BaseCircleDialog implements AdapterView.OnIte @Override public void onItemClick(AdapterView parent, View view, int position, long id) { SaveParam.getInstance().saveLoginParam(getActivity(), SaveParam.CITYS, ""+data.get(position).getRegionId()); - mCallBack.provinceOnItemClick(parent,view,position,id,3); + mCallBack.province2OnItemClick(data,position,3); dismiss(); } diff --git a/PersonalCenter/app/src/main/java/com/hjx/personalcenter/customdialog/GradeListDialog.java b/PersonalCenter/app/src/main/java/com/hjx/personalcenter/customdialog/GradeListDialog.java index 75e3cf6..a3edc10 100644 --- a/PersonalCenter/app/src/main/java/com/hjx/personalcenter/customdialog/GradeListDialog.java +++ b/PersonalCenter/app/src/main/java/com/hjx/personalcenter/customdialog/GradeListDialog.java @@ -33,11 +33,11 @@ public class GradeListDialog extends BaseCircleDialog implements AdapterView.OnI private GrandeAdapter listadapter; private ListView listView; ArrayList data = new ArrayList<>(); - private DialogCallBack.CallBack mCallBack; - public GradeListDialog(DialogCallBack.CallBack callBack) { + private DialogCallBack.GradeCallBack mCallBack; + public GradeListDialog(DialogCallBack.GradeCallBack callBack) { this.mCallBack = callBack; } - public static GradeListDialog getInstance(DialogCallBack.CallBack callBack) { + public static GradeListDialog getInstance(DialogCallBack.GradeCallBack callBack) { GradeListDialog dialogFragment = new GradeListDialog(callBack); dialogFragment.setCanceledBack(true); dialogFragment.setCanceledOnTouchOutside(true); @@ -80,7 +80,7 @@ public class GradeListDialog extends BaseCircleDialog implements AdapterView.OnI public void onItemClick(AdapterView parent, View view, int position, long id) { SaveParam.getInstance().saveLoginParam(getActivity(), SaveParam.GRADENS, ""+data.get(position).getId()); - mCallBack.provinceOnItemClick(parent,view,position,id,5); + mCallBack.province3OnItemClick(data,position,5); dismiss(); diff --git a/PersonalCenter/app/src/main/java/com/hjx/personalcenter/customdialog/ProvinceListDialog.java b/PersonalCenter/app/src/main/java/com/hjx/personalcenter/customdialog/ProvinceListDialog.java index 0a137b3..cdf7961 100644 --- a/PersonalCenter/app/src/main/java/com/hjx/personalcenter/customdialog/ProvinceListDialog.java +++ b/PersonalCenter/app/src/main/java/com/hjx/personalcenter/customdialog/ProvinceListDialog.java @@ -35,7 +35,7 @@ public class ProvinceListDialog extends BaseCircleDialog implements AdapterView. private ListView listView; private ArrayList data = new ArrayList<>(); - private DialogCallBack.CallBack mCallBack; + private DialogCallBack.ProvincesCallBack mCallBack; Handler handler = new Handler(){ @Override @@ -51,11 +51,11 @@ public class ProvinceListDialog extends BaseCircleDialog implements AdapterView. } } }; - public ProvinceListDialog(DialogCallBack.CallBack callBack) { + public ProvinceListDialog(DialogCallBack.ProvincesCallBack callBack) { this.mCallBack = callBack; } - public static ProvinceListDialog getInstance(DialogCallBack.CallBack callBack) { + public static ProvinceListDialog getInstance(DialogCallBack.ProvincesCallBack callBack) { ProvinceListDialog dialogFragment = new ProvinceListDialog(callBack); dialogFragment.setCanceledBack(true); dialogFragment.setCanceledOnTouchOutside(true); @@ -86,7 +86,7 @@ public class ProvinceListDialog extends BaseCircleDialog implements AdapterView. public void onItemClick(AdapterView parent, View view, int position, long id) { //Toast.makeText(getActivity(), "你点击了第" + position + "个", Toast.LENGTH_LONG).show(); SaveParam.getInstance().saveLoginParam(getActivity(), SaveParam.PROVINCES, ""+data.get(position).getRegionId()); - mCallBack.provinceOnItemClick(parent,view,position,id,1); + mCallBack.provinceOnItemClick(data,position,1); dismiss(); } diff --git a/PersonalCenter/app/src/main/java/com/hjx/personalcenter/customdialog/SchoolListDialog.java b/PersonalCenter/app/src/main/java/com/hjx/personalcenter/customdialog/SchoolListDialog.java index e8bfb94..cbeaa26 100644 --- a/PersonalCenter/app/src/main/java/com/hjx/personalcenter/customdialog/SchoolListDialog.java +++ b/PersonalCenter/app/src/main/java/com/hjx/personalcenter/customdialog/SchoolListDialog.java @@ -39,16 +39,16 @@ public class SchoolListDialog extends BaseCircleDialog implements AdapterView.On private View mView; boolean isFilter; ArrayList data = new ArrayList<>(); - private DialogCallBack.CallBack mCallBack; + private DialogCallBack.SchoolCallBack mCallBack; // public SchoolListDialog(DialogCallBack.CallBackView callBack) { // this.mCallBack = callBack; // } - public SchoolListDialog(DialogCallBack.CallBack callBack) { + public SchoolListDialog(DialogCallBack.SchoolCallBack callBack) { this.mCallBack = callBack; } - public static SchoolListDialog getInstance(DialogCallBack.CallBack mCallBack) { + public static SchoolListDialog getInstance(DialogCallBack.SchoolCallBack mCallBack) { SchoolListDialog dialogFragment = new SchoolListDialog(mCallBack); dialogFragment.setCanceledBack(true); dialogFragment.setCanceledOnTouchOutside(true); @@ -128,7 +128,7 @@ public class SchoolListDialog extends BaseCircleDialog implements AdapterView.On @Override public void onItemClick(AdapterView parent, View view, int position, long id) { - mCallBack.provinceOnItemClick(parent,view,position,id,4); + mCallBack.provinceO4nItemClick(data,position,4); dismiss(); } diff --git a/PersonalCenter/app/src/main/java/com/hjx/personalcenter/http/HttpManager.java b/PersonalCenter/app/src/main/java/com/hjx/personalcenter/http/HttpManager.java index 0553af6..c655236 100644 --- a/PersonalCenter/app/src/main/java/com/hjx/personalcenter/http/HttpManager.java +++ b/PersonalCenter/app/src/main/java/com/hjx/personalcenter/http/HttpManager.java @@ -42,6 +42,7 @@ import org.json.JSONException; import org.json.JSONObject; import java.io.UnsupportedEncodingException; +import java.util.ArrayList; import java.util.List; public class HttpManager { @@ -683,14 +684,25 @@ public class HttpManager { public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { Log.e("test", "年级" + new String(arg2)); GradeInfo gradeInfo = GsonTool.getPerson(new String(arg2), GradeInfo.class);//解析json数据 - List gradeInfoBeanList = null; - for (int i = 0 ;i<3;i++) { - gradeInfoBeanList=(gradeInfo.getData().get(i).getChildren()); + List gradeInfoLists = new ArrayList(); + for (int i = 0 ;i gradeinfoList = gradeInfo.getData().get(i).getChildren(); + for (int j = 0; j < gradeinfoList.size(); j++) { + String secondname = gradeinfoList.get(j).getName(); + int secondid = gradeinfoList.get(j).getId(); + GradeInfo.DataBean.ChildrenBean dataBean = new GradeInfo.DataBean.ChildrenBean(); + dataBean.setName(secondname); + dataBean.setId(secondid); + gradeInfoLists.add(dataBean); + } + } Message message = Message.obtain(); message.what = HttpCode.GRADER; - message.obj = gradeInfoBeanList; + message.obj = gradeInfoLists; handler.sendMessage(message); @@ -722,7 +734,14 @@ public class HttpManager { } }); } - ///获取学校 + + /** + * 获取学校 + * @param mContext + * @param regionId + * @param gradeId + * @param handler + */ public void getschool(final Context mContext, int regionId, int gradeId, final Handler handler) { HttpClient.getInstance().addHeader("Accept", "application/json"); HttpClient.getInstance().get(HttpUrl.schoolUrl+ "?regionId=" + regionId+ "&gradeId=" + gradeId, new AsyncHttpResponseHandler() { diff --git a/PersonalCenter/app/src/main/java/com/hjx/personalcenter/interfaces/DialogCallBack.java b/PersonalCenter/app/src/main/java/com/hjx/personalcenter/interfaces/DialogCallBack.java index 3c1034d..984758f 100644 --- a/PersonalCenter/app/src/main/java/com/hjx/personalcenter/interfaces/DialogCallBack.java +++ b/PersonalCenter/app/src/main/java/com/hjx/personalcenter/interfaces/DialogCallBack.java @@ -4,14 +4,34 @@ import android.content.Context; import android.view.View; import android.widget.AdapterView; +import com.hjx.personalcenter.model.CityInfo; +import com.hjx.personalcenter.model.CountyInfo; +import com.hjx.personalcenter.model.GradeInfo; +import com.hjx.personalcenter.model.ProvinceInfo; +import com.hjx.personalcenter.model.SchoolInfo; + +import java.util.ArrayList; + /** * Created by wei on 2017/8/17. */ public class DialogCallBack { //对话框回调 - public interface CallBack{ - void provinceOnItemClick(AdapterView parent, View view, int position, long id,int type); + public interface ProvincesCallBack{ + void provinceOnItemClick(ArrayList data, int position, int type); + } + public interface CitysCallBack{ + void province1OnItemClick(ArrayList data, int position, int type); + } + public interface CountryCallBack{ + void province2OnItemClick(ArrayList data, int position, int type); + } + public interface GradeCallBack{ + void province3OnItemClick(ArrayList data, int position, int type); + } + public interface SchoolCallBack{ + void provinceO4nItemClick(ArrayList data, int position, int type); } //头像回调 public interface CallBackView{ -- 1.9.0