您的位置:首页 > 运维架构

二级列表展示数据和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;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: