【问题标题】:popwindow inside android Fragmentandroid片段内的弹出窗口
【发布时间】:2016-06-06 15:04:26
【问题描述】:

我有一个带有片段的活动,在片段内有按钮,点击它我想显示一个带有自定义布局的弹出窗口。

这里是片段代码示例

public class TabContent extends Fragment {
JSONArray jArray;
private ImageView ime;
private GridView gridView;
private GridViewAdapter gridAdapter;

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.tabcontent, container, false);
    Bundle bundle = getArguments();
    gridView = (GridView) view.findViewById(R.id.gridView);
    gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
            ImageItem item = (ImageItem) parent.getItemAtPosition(position);
            try {
                final JSONObject menuData = (JSONObject) dobj.getMenuData(TabPosition,position);
                Log.i("item", String.valueOf(menuData));


                // here i want to trigger the popupwindow


            } catch (JSONException e) {
                e.printStackTrace();
            }

        }
    });


    return view;
}

【问题讨论】:

  • 使用 Dialog Fragment 在 Fragment 中打开一个 Dialog 可以自定义布局 教程:androidbegin.com/tutorial/android-dialogfragment-tutorial
  • 如果你愿意,我可以展示如何编写代码。
  • 是的,我很高兴得到一些帮助
  • 我已经回答了下面的检查
  • 这对您有帮助吗?

标签: android layout fragment popupwindow


【解决方案1】:
      AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(getActivity());

 LayoutInflater inflater = getActivity().getLayoutInflater();
  View customView=inflater.inflate(R.layout.yourxml, null);
   dialogBuilder.setView(customView);

      final AlertDialog alertDialog = dialogBuilder.create();
                            alertDialog.setCancelable(false);
                            alertDialog.setCanceledOnTouchOutside(false);
            //Intialize your view components here
      example: TextView txtsample=(TextView)customView.findViewById(R.id.yourtxtviewid);



     alertDialog.show();

【讨论】:

    【解决方案2】:

    如教程androidbegin.com/tutorial/android-dialogfragment-tutorial

    使用下方打开对话框片段

    FragmentManager fm = getSupportFragmentManager();
        AlertDFragment alertdFragment = new AlertDFragment();
                        // Show Alert DialogFragment
                        alertdFragment.show(fm, "Alert Dialog Fragment");
    

    下面是可以自定义布局的Dialog Fragment代码,dialogfragment是可以自定义布局的XML文件

     public class DFragment extends DialogFragment {
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.dialogfragment, container,
                    false);
            getDialog().setTitle("DialogFragment Tutorial");        
            // Do something else
            return rootView;
        }
    }
    

    【讨论】:

    • 代码有小问题。我们应该初始化 DFragment 类。我还没有看到。我试图这样做 DFragment dFragment = new DFragment(); dFragment.show(getActivity().getSupportFragmentManager(), "对话框片段");
    • 是的,我忘记将 AlertDFragment 的名称更改为 DFragment。干杯快乐编码
    猜你喜欢
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多