/*
* AUTHOR:Yolanda.
*
* DESCRIPTION:create the File, and add the content.
*
* Copyright © ZhiMore. All Rights Reserved.
*
*/
package com.yolanda.listcheck.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.yolanda.listcheck.R;
import com.yolanda.listcheck.bean.OneBean;
import com.yolanda.listcheck.bean.TwoBean;
import java.util.ArrayList;
import java.util.List;
/**
* <p>一二级目录的适配器。</p>
* Created in 2016/3/22 17:34.
*
* @author Yolanda;
*/
public class OneTwoAdapter extends BaseExpandableListAdapter {
private Context mContext;
private OnTwoItemClickListener itemClickListener;
private List<OneBean> oneBeans = new ArrayList<>();
public OneTwoAdapter(Context context, OnTwoItemClickListener itemClickListener) {
this.mContext = context;
this.itemClickListener = itemClickListener;
}
public void notifyDataSetChanged(List<OneBean> oneBeans) {
this.oneBeans.clear();
if (oneBeans != null)
this.oneBeans.addAll(oneBeans);
super.notifyDataSetChanged();
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
OneViewHolder oneViewHolder;
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(R.layout.item_list_one_title, parent, false);
oneViewHolder = new OneViewHolder(convertView);
convertView.setTag(oneViewHolder);
} else
oneViewHolder = (OneViewHolder) convertView.getTag();
oneViewHolder.setPosition(groupPosition);
return convertView;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
TwoViewHolder twoViewHolder;
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(R.layout.item_list_two_title, parent, false);
twoViewHolder = new TwoViewHolder(convertView);
convertView.setTag(twoViewHolder);
} else
twoViewHolder = (TwoViewHolder) convertView.getTag();
twoViewHolder.setPosition(groupPosition, childPosition);
return convertView;
}
/**
* 一级的holder。
*/
class OneViewHolder {
private TextView mTvTitle;
private OneViewHolder(View view) {
mTvTitle = (TextView) view.findViewById(R.id.tv_title_one);
}
public void setPosition(int position) {
OneBean oneBean = getGroup(position);
mTvTitle.setText(oneBean.getTitle());
}
}
/**
* 二级的holder。
*/
class TwoViewHolder implements View.OnClickListener {
private TextView mTvTitle;
private int position;
private int childPosition;
private TwoViewHolder(View view) {
view.setOnClickListener(this);
mTvTitle = (TextView) view.findViewById(R.id.tv_title_two);
}
public void setPosition(int position, int childPosition) {
this.position = position;
this.childPosition = childPosition;
TwoBean twoBean = getChild(position, childPosition);
mTvTitle.setText(twoBean.getTitle());
mTvTitle.setSelected(twoBean.isChecked());
}
@Override
public void onClick(View v) {
{
// 这一段代码是选中当前点击的,反选其它选项,这就是单选
for (OneBean oneBean : oneBeans) {
List<TwoBean> twoBeans = oneBean.getOperation();
for (TwoBean twoBean : twoBeans)
twoBean.setChecked(false);
}
getChild(position, childPosition).setChecked(true);
notifyDataSetChanged();
}
// 通知外部刷新第三级
if (itemClickListener != null)
itemClickListener.onClick(position, childPosition);
}
}
public interface OnTwoItemClickListener {
void onClick(int groupId, int childId);
}
@Override
public int getGroupCount() {
return oneBeans.size();
}
@Override
public int getChildrenCount(int groupPosition) {
return oneBeans.get(groupPosition).getOperation().size();
}
@Override
public OneBean getGroup(int groupPosition) {
return oneBeans.get(groupPosition);
}
@Override
public TwoBean getChild(int groupPosition, int childPosition) {
return getGroup(groupPosition).getOperation().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 boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Android三级目录、ListView单选/GridView单选、ListView多选/GridView多选
共53个文件
xml:21个
java:6个
png:5个
4星 · 超过85%的资源 需积分: 13 215 下载量 80 浏览量
2016-03-23
10:34:11
上传
评论 3
收藏 247KB ZIP 举报
温馨提示
Android三级目录、ListView单选/GridView单选、ListView多选/GridView多选。选中后背景变色,字体变色。
资源推荐
资源详情
资源评论
收起资源包目录
ListCheckSample_m.zip (53个子文件)
ListCheckSample
gradlew 5KB
settings.gradle 16B
ListCheckSample.iml 946B
.idea
runConfigurations.xml 564B
misc.xml 3KB
compiler.xml 727B
workspace.xml 146KB
gradle.xml 608B
.name 15B
modules.xml 367B
copyright
profiles_settings.xml 76B
vcs.xml 164B
gradle
wrapper
gradle-wrapper.properties 230B
gradle-wrapper.jar 52KB
.gradle
2.8
taskArtifacts
cache.properties.lock 17B
fileHashes.bin 131KB
outputFileStates.bin 20KB
taskArtifacts.bin 58KB
fileSnapshots.bin 562KB
cache.properties 31B
local.properties 436B
gradlew.bat 2KB
gradle.properties 872B
.gitignore 105B
app
src
main
AndroidManifest.xml 750B
res
mipmap-hdpi
ic_launcher.png 3KB
mipmap-xxxhdpi
ic_launcher.png 10KB
mipmap-xhdpi
ic_launcher.png 5KB
menu
activity_main.xml 240B
mipmap-mdpi
ic_launcher.png 2KB
drawable
selector_tv_two_bg.xml 435B
selector_tv_three_bg.xml 443B
layout
item_list_two_title.xml 758B
item_list_three_title.xml 809B
item_list_one_title.xml 805B
activity_main.xml 676B
values
colors.xml 520B
strings.xml 135B
styles.xml 207B
dimens.xml 153B
color
selector_tv_color.xml 395B
mipmap-xxhdpi
ic_launcher.png 8KB
java
com
yolanda
listcheck
MainActivity.java 4KB
adapter
OneTwoAdapter.java 5KB
ThreeAdapter.java 4KB
bean
OneBean.java 1022B
TwoBean.java 1KB
ThreeBean.java 1KB
build
libs
app.iml 6KB
.gitignore 8B
build.gradle 557B
proguard-rules.pro 670B
build.gradle 521B
共 53 条
- 1
资源评论
- 2739719392018-08-07还可以,有用
- Nickyoyo552018-04-24还不错,可以作为参考
- Mr_sleep2018-06-11还行,可以参考
- klzxunlei2018-03-15还是有一定的参考价值。
严振杰
- 粉丝: 4789
- 资源: 60
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功