DialogFragment的使用示例

                       **DialogFragment的使用示例**

使用环境:在FragmentActivity里面使用对话框时标准的用法现在时采用DialogFragment

public class TagListDialogFragment extends DialogFragment {
    private TextView title_diaglog;
    private GridView gv_tags;// 标签列表
    private Button canclebtn;// 取消按钮
    private Button surebtn;
    private ArrayList<String> tagarray;
    private HashMap<Integer, Boolean> map;
    private TagGridListAdapter adapter;
    private ArrayList<String> tags;
    TheTagsListener listener;

    public interface TheTagsListener {
        public void returnTagDate(ArrayList<String> tagdata);
    }

    public TagListDialogFragment(TheTagsListener listener) {
        this.listener = listener;
    }

    @Override
    public void onStart() {
        super.onStart();
        getDialog().getWindow().setLayout(LayoutParams.WRAP_CONTENT, 500);
    }

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.taglistdialog_layout, container,
                false);

        title_diaglog = (TextView) v.findViewById(R.id.title_diaglog);
        title_diaglog.setText("标签选择");
        gv_tags = (GridView) v.findViewById(R.id.gv_tags);
        canclebtn = (Button) v.findViewById(R.id.canclebtn);
        surebtn = (Button) v.findViewById(R.id.surebtn);

        gv_tags.setSelector(new ColorDrawable(Color.TRANSPARENT));
        canclebtn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                dismiss();
            }
        });
        surebtn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getActivity(), "you chose ok!",
                        Toast.LENGTH_SHORT).show();

                if (map.size() > 0) {
                    for (int i = 0; i < map.size(); i++) {
                        if (map.get(i)) {
                            tags.add(tagarray.get(i));
                        }
                    }
                    Log.d("xwj", "标签个数:" + tags.size());
                }

                // if (listener != null) {
                listener.returnTagDate(tags);
                // }
                dismiss();
            }
        });

        tagarray = getTagListData();
        tags = new ArrayList<String>();
        map = new HashMap<Integer, Boolean>();
        for (int i = 0; i < tagarray.size(); i++) {
            map.put(i, false);
        }

        gv_tags.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View view, int pos,
                    long arg3) {
                if (map.get(pos)) {
                    map.put(pos, false);
                } else {
                    map.put(pos, true);
                }
                adapter.notifyDataSetChanged();
            }
        });
        adapter = new TagGridListAdapter(getActivity(), tagarray, map);
        gv_tags.setAdapter(adapter);
        return v;
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        Dialog dialog = super.onCreateDialog(savedInstanceState);
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

        return dialog;
    }

    private ArrayList<String> getTagListData() {
        ArrayList<String> taglist0 = new ArrayList<String>();

        String tag1 = "海景";
        String tag2 = "风光";
        String tag3 = "自然";
        String tag4 = "山水";
        String tag5 = "温泉";
        String tag6 = "乐园";
        String tag7 = "休闲";
        String tag8 = "度假";
        taglist0.add(tag1);
        taglist0.add(tag2);
        taglist0.add(tag3);
        taglist0.add(tag4);
        taglist0.add(tag5);
        taglist0.add(tag6);
        taglist0.add(tag7);
        taglist0.add(tag8);

        return taglist0;
    }
}

调用显示对话框:

// 显示对话框选择器
    private void showTagsFragemnt() {
        TagListDialogFragment.TheTagsListener thetagListener = new TheTagsListener() {
            public void returnTagDate(ArrayList<String> tagsdate) {
                Log.d("xwjd", "标签个数有:" + tagsdate.size());

                 String[] tags_all = tagsdate.toArray(new String[tagsdate.size()]);

                 StringBuffer sb = new StringBuffer();
                 for(int i = 0; i < tags_all.length; i++){
                  sb. append(tags_all[i]);
                  sb.append(" ");
                 }
                route_tag.setText(sb.toString());

            }
        };

        DialogFragment fragment = new TagListDialogFragment(
                thetagListener);
        fragment.show(getSupportFragmentManager(), "dialog");
    }

这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiawj8957

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值