android 三级级联筛选列表

}

List<SecondBean.ThirdBean> thirdList = mSecondList.get(i).getItems();

for (int j = 0; j < thirdList.size(); j++) {

if (i == groupPosition && j == childPosition) {

thirdList.get(j).setIsSelect(true);

} else {

thirdList.get(j).setIsSelect(false);

}

}

}

String thirdType = mSecondList.get(groupPosition).getType();

String thirdName = mSecondList.get(groupPosition).getName();

String fourType = mSecondList.get(groupPosition).getItems().get(childPosition).getType();

String fourName = mSecondList.get(groupPosition).getItems().get(childPosition).getName();

mProjectType = mFirstProjectType + “/” + thirdType + “/” + fourType;//工程类型id

mProjectTypeName = mFirstProjectTypeName + “/” + thirdName + “/” + fourName;//工程名称 前端显示

mSecondAdapter.setData(mSecondList);

return false;

}

});

}

MyViewPager

package com.jky.mobile_gczjjc.widget;

import android.content.Context;

import android.support.v4.view.ViewPager;

import android.util.AttributeSet;

/**

  • Created by LaiYingtang on 2016/5/22.

  • 主页面左右滑动

*/

public class MyViewPager extends ViewPager {

public MyViewPager(Context context, AttributeSet attrs) {

super(context, attrs);

}

public MyViewPager(Context context) {

super(context);

}

//判断menu在x,y的位置

public void scrollTo(int x,int y){

if(getAdapter()==null||x>getWidth()*(getAdapter().getCount()-2)){

return;

}

super.scrollTo(x,y);

}

}

TargetCategoryFirstAdapter

package com.jky.mobile_gczjjc.adapter;

import android.content.Context;

import android.graphics.Color;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.TextView;

import com.jky.mobile_gczjjc.R;

import com.jky.mobile_gczjjc.bean.CategoryBean.FirstBean;

import java.util.ArrayList;

import java.util.List;

/**

  • 指标 建筑分类 第一级适配器

  • @author zlw

*/

public class TargetCategoryFirstAdapter extends BaseAdapter {

private Context mContext;

private List firstBeans =new ArrayList<>();

private int mSelectedBackgroundResource;//选中item时的背景颜色

private int mNormalBackgroundResource;//为选中的背景颜色

private boolean hasDivider = true;

public void setSelectedBackgroundResource(int mSelectedBackgroundResource) {

this.mSelectedBackgroundResource = mSelectedBackgroundResource;

}

public void setNormalBackgroundResource(int mNormalBackgroundResource) {

this.mNormalBackgroundResource = mNormalBackgroundResource;

}

public void setHasDivider(boolean hasDivider) {

this.hasDivider = hasDivider;

}

public TargetCategoryFirstAdapter(Context mContext, List firstBeans) {

this.mContext = mContext;

this.firstBeans = firstBeans;

}

public void setData(List data) {

this.firstBeans = data;

notifyDataSetChanged();

}

@Override

public int getCount() {

if (firstBeans == null) {

return 0;

}

return firstBeans.size();

}

@Override

public Object getItem(int position) {

if (firstBeans == null) {

return null;

}

return firstBeans.get(position);

}

@Override

public long getItemId(int position) {

return position;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder vh = null;

if (convertView == null) {

vh = new ViewHolder();

convertView = LayoutInflater.from(mContext).inflate(R.layout.item_target_category_first, null);

vh.itemLayout = convertView.findViewById(R.id.menu_item_ly);

vh.nameText = convertView.findViewById(R.id.name_rb);

vh.dividerTextView = convertView.findViewById(R.id.menu_item_divider);

convertView.setTag(vh);

} else {

vh = (ViewHolder) convertView.getTag();

}

FirstBean firstBean = firstBeans.get(position);

vh.nameText.setText(firstBean.getName());//设置标题

if (firstBean.isSelect){

vh.nameText.setTextColor(mContext.getResources().getColor(R.color.common_blue));

vh.itemLayout.setBackgroundResource(mSelectedBackgroundResource);

}else{

vh.nameText.setTextColor(Color.BLACK);

vh.itemLayout.setBackgroundResource(mNormalBackgroundResource);

}

//隐藏view

vh.dividerTextView.setVisibility(hasDivider ? View.VISIBLE : View.INVISIBLE);

return convertView;

}

private class ViewHolder{

private View itemLayout;

private TextView nameText;

private TextView dividerTextView;

}

}

TargetCateGorySecondAdapter

package com.jky.mobile_gczjjc.adapter;

import android.content.Context;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseExpandableListAdapter;

import android.widget.TextView;

import com.jky.mobile_gczjjc.R;

import com.jky.mobile_gczjjc.bean.CategoryBean.FirstBean.SecondBean;

import com.jky.mobile_gczjjc.bean.CategoryBean.FirstBean.SecondBean.ThirdBean;

import java.util.ArrayList;

import java.util.List;

/**

  • 指标 建筑分类 第二级适配器

  • @author zlw

*/

public class TargetCategorySecondAdapter extends BaseExpandableListAdapter {

private Context mContext;

private List secondBeans= new ArrayList<>();

private int selectedPos = -1;

public TargetCategorySecondAdapter(Context mContext, List menuDatas) {

this.mContext = mContext;

this.secondBeans = menuDatas;

}

//选中的position,及时更新数据

public void setSelectedPos(int selectedPos) {

this.selectedPos = selectedPos;

notifyDataSetChanged();

}

public void setData(List data) {

this.secondBeans = data;

notifyDataSetChanged();

}

@Override

public int getGroupCount() {

return secondBeans.size();

}

@Override

public int getChildrenCount(int groupPosition) {

return secondBeans.get(groupPosition).getItems().size();

}

@Override

public Object getGroup(int groupPosition) {

return secondBeans.get(groupPosition);

}

@Override

public Object getChild(int groupPosition, int childPosition) {

return secondBeans.get(groupPosition).getItems().get(childPosition);

}

@Override

public long getGroupId(int groupPosition) {

return groupPosition;

}

@Override

public long getChildId(int groupPosition, int childPosition) {

return childPosition;

}

@Override

public boolean hasStableIds() {

return true;

}

@Override

public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {

ViewHolder vh = null;

if (convertView == null) {

vh = new ViewHolder();

convertView = LayoutInflater.from(mContext).inflate(R.layout.item_target_category_second, null);

vh.menu_item_ly = convertView.findViewById(R.id.menu_item_ly);

vh.nameText = convertView.findViewById(R.id.name_rb);

convertView.setTag(vh);

} else {

vh = (ViewHolder) convertView.getTag();

}

SecondBean secondBean = secondBeans.get(groupPosition);

if (secondBean.isSelect){

vh.nameText.setTextColor(mContext.getResources().getColor(R.color.red_text_color));

}else{

vh.nameText.setTextColor(mContext.getResources().getColor(R.color.gray_text_color));

}

vh.nameText.setText(secondBean.getName());//设置标题

return convertView;

}

@Override

public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {

View view = convertView;

ChildHolder holder = null;

if(view == null){

holder = new ChildHolder();

convertView = LayoutInflater.from(mContext).inflate(R.layout.item_target_category_third, null);

holder.menu_item_ly = convertView.findViewById(R.id.menu_item_ly);

holder.nameText = convertView.findViewById(R.id.name_rb);

convertView.setTag(holder);

}else{

holder = (ChildHolder)convertView.getTag();

}

ThirdBean thirdBean = secondBeans.get(groupPosition).getItems().get(childPosition);

holder.nameText.setText(thirdBean.getName());//设置标题

if (thirdBean.isSelect){

holder.nameText.setTextColor(mContext.getResources().getColor(R.color.red_text_color));

}else{

holder.nameText.setTextColor(mContext.getResources().getColor(R.color.gray_text_color));

}

return convertView;

}

@Override

public boolean isChildSelectable(int groupPosition, int childPosition) {

return true;

}

class ChildHolder{

private View menu_item_ly;

private TextView nameText;

}

private class ViewHolder {

private View menu_item_ly;

private TextView nameText;

}

}

CategoryBean

package com.jky.mobile_gczjjc.bean;

import com.google.gson.Gson;

import java.util.List;

/**

  • Created by lenovo on 2018/3/13.

*/

public class CategoryBean {

/**

  • errorCode : 1

  • data : [{“name”:“居住建筑”,“type”:“”,“items”:[{“name”:“普通住宅”,“type”:“”,“items”:[{“name”:“保障性住房”,“type”:“”}]}]}]

*/

private int errorCode;

private List data;

public List getData() {

return data;

}

public void setData(List data) {

this.data = data;

}

public static class FirstBean {

/**

  • name : 居住建筑

  • type :

  • items : [{“name”:“普通住宅”,“type”:“”,“items”:[{“name”:“保障性住房”,“type”:“”}]}]

*/

private String name;

private String type;

public boolean isSelect;

private List items;

public boolean isSelect() {

return isSelect;

}

public void setSelect(boolean select) {

isSelect = select;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getType() {

return type;

}

public void setType(String type) {

this.type = type;

}

public List getItems() {

return items;

}

public void setItems(List items) {

this.items = items;

}

public class SecondBean {

/**

  • name : 普通住宅

  • type :

  • items : [{“name”:“保障性住房”,“type”:“”}]

*/

public String name;

public String type;

private List items;

public boolean isSelect;

public boolean getIsSelect() {

return isSelect;

}

public void setIsSelect(boolean isSelect) {

this.isSelect = isSelect;

}

public String getName() {

return name;

}

最后

由于文章篇幅原因,我只把面试题列了出来,详细的答案,我整理成了一份PDF文档,这份文档还包括了还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 ,帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习。

加入社区》https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0

  • 17
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值