Android弹出窗口不显示操作栏

时间:2014-02-21 06:59:43

标签: android popup android-actionbar

嗨我创建了一个Android应用程序,其中包含带有3个tabs的操作栏。我使用视图寻呼机和适配器创建了它。它运行成功。但是现在我用弹出窗口创建了一个新活动。我添加了我的activity_main作为我的内容视图。但它没有显示动作栏标签。我不知道为什么。我是新手。所以请帮助我,提前谢谢。

这是我的代码

MainActivity.java

         public class MainActivity1 extends FragmentActivity implements
    ActionBar.TabListener {

       private ViewPager viewPager;
       private TabsPagerAdapter mAdapter;
       private ActionBar actionBar;
       // Tab titles
       private String[] tabs = { "Featured", "Games", "Entertainment" };

       @Override
       protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);




         viewPager = (ViewPager) findViewById(R.id.pager);
         actionBar = getActionBar();
         mAdapter = new TabsPagerAdapter(getSupportFragmentManager());

         viewPager.setAdapter(mAdapter);
         actionBar.setHomeButtonEnabled(false);
         actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);       

         // Adding Tabs
         for (String tab_name : tabs) {
        actionBar.addTab(actionBar.newTab().setText(tab_name)
                .setTabListener(this));
          }

         /**
          * on swiping the viewpager make respective tab selected
         * */
          viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener()   {

             @Override
             public void onPageSelected(int position) {
                 // on changing the page
                 // make respected tab selected
                 actionBar.setSelectedNavigationItem(position);
            }

               @Override
               public void onPageScrolled(int arg0, float arg1, int arg2) {
              }

               @Override
               public void onPageScrollStateChanged(int arg0) {
              }
           });
       }

       @Override
       public void onTabReselected(Tab tab, FragmentTransaction ft) {
       }

       @Override
       public void onTabSelected(Tab tab, FragmentTransaction ft) {
           // on tab selected
           // show respected fragment view
          viewPager.setCurrentItem(tab.getPosition());
       }

         @Override
       public void onTabUnselected(Tab tab, FragmentTransaction ft) {
        }




    }

以下是我想要弹出的代码

      public class Main extends FragmentActivity implements
 ActionBar.TabListener {

       @Override
        protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.hii);
          Button b1=(Button)findViewById(R.id.button1);
               b1.setOnClickListener(new OnClickListener() {

               @Override
               public void onClick(View v) {
                  final Dialog dialog = new Dialog(Main.this);
                            // Include dialog.xml file
                           dialog.setContentView(R.layout.activity_main);
                          // Set dialog title
                         dialog.setTitle("Custom Dialog");

                         // set values for custom dialog components - text, image and button



                         dialog.show();


             }
           });
       }

          @Override
          public void onTabReselected(Tab tab, FragmentTransaction ft) {
              // TODO Auto-generated method stub

           }

            @Override
                public void onTabSelected(Tab tab, FragmentTransaction ft) {
                  // TODO Auto-generated method stub

          }

           @Override
              public void onTabUnselected(Tab tab, FragmentTransaction ft) {
              // TODO Auto-generated method stub

         }

     }

1 个答案:

答案 0 :(得分:0)

主要问题出在您的对话框视图中。您必须创建一个自定义的对话框,并且必须使用操作栏选项卡添加样式。如果您在对话框中使用该样式,那么所有这些操作栏选项卡都会出现。

我建议不要在你的b1.setOnclick方法中使用对话框创建一个单独的Dialog类,它将扩展Dialog类。你设置内容视图并使用操作栏选项卡进行适当的布局,就像你为你做的那样活性。

并从dialog class扩充布局。这样的事情: -

       b1.setOnClickListener(new View.setOnClickListener){

          new actionbarDialog(MainActivity.this).show();
         }

并创建一个actionbarDialog类,它将扩展Dialog class

并在该类的onCreate()方法中编写您在MainActivity中编写的操作栏的逻辑。您将在Dialog中获取操作栏选项卡。