首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在android中调用对话框中的片段?

如何在android中调用对话框中的片段?
EN

Stack Overflow用户
提问于 2016-04-20 20:03:42
回答 3查看 1K关注 0票数 -2

我想知道,如何在android中调用对话框点击操作中的片段。该对话框在另一个活动中。

下面是对话框节代码

public static void Bookingconfirm(final Context _context, String title,String strMessage)
{
    final Dialog dialog1 = new Dialog(_context);

    Log.e("Point","1");
    dialog1.setContentView(R.layout.booking_success);
    dialog1.setCanceledOnTouchOutside(true);
    dialog1.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
    dialog1.findViewById(R.id.d_location);
    LinearLayout btnok = (LinearLayout) dialog1.findViewById(R.id.booking_ok);


    btnok.setOnClickListener(new OnClickListener()
    {

        @SuppressLint("NewApi") @Override
        public void onClick(View arg0)
        {   
            Log.e("Point","2"); 

            //i wanted the click to fragment here
            // parent class of fragment Home.java and fragment is booking.java


        }
    });


    dialog1.show();

}
EN

回答 3

Stack Overflow用户

发布于 2016-04-20 20:11:22

 Fragment fragment= booking.newInstance();
 Home mainActivity = (Home) context;
        FragmentManager manager = mainActivity.getSupportFragmentManager();
        FragmentTransaction transaction = manager.beginTransaction();
        transaction.replace(R.id.container, fragment, "Frag");
        transaction.commit();

从对话框中尝试上面的代码,单击Listener ...Hope这会有所帮助

票数 0
EN

Stack Overflow用户

发布于 2016-04-20 20:43:25

试试下面的代码:

FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.content_frame, new booking());
fragmentTransaction.commit();
票数 0
EN

Stack Overflow用户

发布于 2018-07-24 06:29:37

哈龙和普拉迪普回答不起作用。您可以将FragmentManager传递给对话框类,如下所示:

 import android.support.v4.app.FragmentManager

 class TestDialog(val fragmentManager:FragmentManager) {

   fun show()
   {
      showFragmentButton.setOnClickListener{

       val fragmentTransaction = fragmentManager.beginTransaction()
       val fragment = PurchaseDetail()
        fragmentTransaction.replace(R.id.container, fragment, "cashier_fragment")
        fragmentTransaction.addToBackStack(null)
        fragmentTransaction.commit()

        }
   }
}

在你的片段中:

 TestDialog(getFragmentManager()).show()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36743215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档