二级列表展示数据和popwindow联动
2018-01-18 20:00
363 查看
//mldh布局
<ListViewandroid:id="@+id/list_view1"android:layout_width="150dp"android:layout_height="wrap_content"android:background="#999999"android:alpha="0.7"></ListView>
//整体的一个activity
public class FragmentZi extends Fragment {
private TextView tanchu;
private ExpandableListView list_view;
private List<BeanD.LayoutsBean> layouts;
private ArrayList<String> dhs;
private PopupWindow popupWindow;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.wenzibuju, container, false);
initView(view);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
huoshuju();
list_view.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView expandableListView, View view, int i, int i1, long l) {
Toast.makeText(getContext(), layouts.get(i).getList().get(i1).getTitle(), Toast.LENGTH_SHORT).show();
return false;
}
});
tanchu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
View view1 = LayoutInflater.from(getContext()).inflate(mldh, null, false);
ListView list = view1.findViewById(R.id.list_view1);
list.setAdapter(new ArrayAdapter<String>(getContext(), android.R.layout.simple_list_item_1, dhs));
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
list_view.setSelectedGroup(i);
popupWindow.dismiss();
}
});
popupWindow = new PopupWindow(view1,
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
popupWindow.setFocusable(true);
popupWindow.setBackgroundDrawable(new BitmapDrawable());
popupWindow.setOutsideTouchable(true);
popupWindow.showAsDropDown(tanchu);
}
});
}
private void huoshuju() {
Fengzhuang.get("http://h5test.newaircloud.com/api/getLayouts?sid=xkycs&cid=10024&date=").subscribe(new Observer<String>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull String s) {
Gson gson=new Gson();
BeanD beanD = gson.fromJson(s, BeanD.class);
dhs = new ArrayList<>();
layouts = beanD.getLayouts();
list_view.setAdapter(new ELAdapter());
for (int i = 0; i < layouts.size(); i++) {
dhs.add(layouts.get(i).getName());
list_view.expandGroup(i);
}
}
@Override
public void onError(@NonNull Throwable e) {
}
@Override
public void onComplete() {
}
});
}
private void initView(View view) {
tanchu = (TextView) view.findViewById(R.id.tanchu);
list_view = (ExpandableListView) view.findViewById(R.id.list_view);
}
class ELAdapter extends BaseExpandableListAdapter {
@Override
public int getGroupCount() {
return layouts.size();
}
@Override
public int getChildrenCount(int i) {
return layouts.get(i).getList().size();
}
@Override
public Object getGroup(int i) {
return layouts.get(i);
}
@Override
public Object getChild(int i, int i1) {
return layouts.get(i).getList().get(i1).getTitle();
}
@Override
public long getGroupId(int i) {
return i;
}
@Override
public long getChildId(int i, int i1) {
return i1;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) {
GroupViewHolder holder;
if(view == null){
view = View.inflate(getContext(), R.layout.layout_group, null);
holder = new GroupViewHolder();
holder.group_name = view.findViewById(R.id.group_name);
view.setTag(holder);
}else{
holder = (GroupViewHolder) view.getTag();
}
holder.group_name.setText(layouts.get(i).getName());
return view;
}
@Override
public View getChildView(int i, int i1, boolean b, View view, ViewGroup viewGroup) {
ChildViewHolder holder;
if(view == null){
view = View.inflate(getContext(), R.layout.layout_child, null);
holder = new ChildViewHolder();
holder.child_title = view.findViewById(R.id.child_title);
view.setTag(holder);
}else{
holder = (ChildViewHolder) view.getTag();
}
holder.child_title.setText(layouts.get(i).getList().get(i1).getTitle());
return view;
}
@Override
public boolean isChildSelectable(int i, int i1) {
return true;
}
class GroupViewHolder{
TextView group_name;
}
class ChildViewHolder{
TextView child_title;
}
}
}
<ListViewandroid:id="@+id/list_view1"android:layout_width="150dp"android:layout_height="wrap_content"android:background="#999999"android:alpha="0.7"></ListView>
//整体的一个activity
public class FragmentZi extends Fragment {
private TextView tanchu;
private ExpandableListView list_view;
private List<BeanD.LayoutsBean> layouts;
private ArrayList<String> dhs;
private PopupWindow popupWindow;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.wenzibuju, container, false);
initView(view);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
huoshuju();
list_view.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView expandableListView, View view, int i, int i1, long l) {
Toast.makeText(getContext(), layouts.get(i).getList().get(i1).getTitle(), Toast.LENGTH_SHORT).show();
return false;
}
});
tanchu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
View view1 = LayoutInflater.from(getContext()).inflate(mldh, null, false);
ListView list = view1.findViewById(R.id.list_view1);
list.setAdapter(new ArrayAdapter<String>(getContext(), android.R.layout.simple_list_item_1, dhs));
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
list_view.setSelectedGroup(i);
popupWindow.dismiss();
}
});
popupWindow = new PopupWindow(view1,
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
popupWindow.setFocusable(true);
popupWindow.setBackgroundDrawable(new BitmapDrawable());
popupWindow.setOutsideTouchable(true);
popupWindow.showAsDropDown(tanchu);
}
});
}
private void huoshuju() {
Fengzhuang.get("http://h5test.newaircloud.com/api/getLayouts?sid=xkycs&cid=10024&date=").subscribe(new Observer<String>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull String s) {
Gson gson=new Gson();
BeanD beanD = gson.fromJson(s, BeanD.class);
dhs = new ArrayList<>();
layouts = beanD.getLayouts();
list_view.setAdapter(new ELAdapter());
for (int i = 0; i < layouts.size(); i++) {
dhs.add(layouts.get(i).getName());
list_view.expandGroup(i);
}
}
@Override
public void onError(@NonNull Throwable e) {
}
@Override
public void onComplete() {
}
});
}
private void initView(View view) {
tanchu = (TextView) view.findViewById(R.id.tanchu);
list_view = (ExpandableListView) view.findViewById(R.id.list_view);
}
class ELAdapter extends BaseExpandableListAdapter {
@Override
public int getGroupCount() {
return layouts.size();
}
@Override
public int getChildrenCount(int i) {
return layouts.get(i).getList().size();
}
@Override
public Object getGroup(int i) {
return layouts.get(i);
}
@Override
public Object getChild(int i, int i1) {
return layouts.get(i).getList().get(i1).getTitle();
}
@Override
public long getGroupId(int i) {
return i;
}
@Override
public long getChildId(int i, int i1) {
return i1;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) {
GroupViewHolder holder;
if(view == null){
view = View.inflate(getContext(), R.layout.layout_group, null);
holder = new GroupViewHolder();
holder.group_name = view.findViewById(R.id.group_name);
view.setTag(holder);
}else{
holder = (GroupViewHolder) view.getTag();
}
holder.group_name.setText(layouts.get(i).getName());
return view;
}
@Override
public View getChildView(int i, int i1, boolean b, View view, ViewGroup viewGroup) {
ChildViewHolder holder;
if(view == null){
view = View.inflate(getContext(), R.layout.layout_child, null);
holder = new ChildViewHolder();
holder.child_title = view.findViewById(R.id.child_title);
view.setTag(holder);
}else{
holder = (ChildViewHolder) view.getTag();
}
holder.child_title.setText(layouts.get(i).getList().get(i1).getTitle());
return view;
}
@Override
public boolean isChildSelectable(int i, int i1) {
return true;
}
class GroupViewHolder{
TextView group_name;
}
class ChildViewHolder{
TextView child_title;
}
}
}
相关文章推荐
- 微信小程序 数据 二级,多级列表展示效果实现
- 二级列表展示网络请求到的数据
- 使用RecycleView实现动态获取数据展开二级列表展示
- 二级列表ExpandableListView+gridview网络请求数据模拟商城展示
- jquery通过struts2请求,返回json数据,在jsp页面形成二级联动下拉列表
- 二级列表展示网络数据
- struts2+json+ajax 二级联动和json数据的页面展示
- ASP.NET无刷新二级联动下拉列表,同样适用与firefox
- PopupWindow+ListView实现二级联动
- each方法应用(列表-json数据展示)
- 使用列表控件展示数据
- 原生js实现二级联动下拉列表菜单
- js使用xml数据载体实现城市省份二级联动效果
- 原生js实现二级联动下拉列表菜单
- Android AlertDialog 里弹Popwindow数据显示不全问题
- jQuery与Ajax小练习-二级联动(从Oracle数据库获取数据)
- ajax jsp中二级下拉框联动 固定数据
- okhttp简单请求数据,列表切换展示
- 二级联动下拉列表 asp+js【转】
- Android开发实现二级联动下拉列表