【问题标题】:How can we call another activity by using fragment tabs?我们如何使用片段选项卡调用另一个活动?
【发布时间】:2013-08-16 11:44:49
【问题描述】:

我正在使用带有标签的片段,并且我在标签中使用 listfragment,我想在项目 clicklistner 上进行另一个活动,我正在使用以下代码:

        Activity activity = getActivity();
        Intent i = new Intent(activity, Motherboard.class);
        startActivity(i);

它将进入另一个活动,但它没有显示标签栏。 如果有任何活动调用,我希望标签栏保持在前面。 请帮帮我。

【问题讨论】:

标签: android android-fragments android-fragmentactivity android-listfragment android-dialogfragment


【解决方案1】:

希望对你有帮助

http://wptrafficanalyzer.in/blog/creating-navigation-tabs-using-tabhost-and-fragments-in-android/

要支持所有版本,您可以使用该教程中也提供的操作栏 sherlock 库。

【讨论】:

    【解决方案2】:

    片段占用了活动的一部分。如果您移动到另一个活动并且您希望它也具有片段,则必须在其中创建片段。 或者,您可以保持在同一个活动中,只切换片段而不启动新活动。

    【讨论】:

      【解决方案3】:

      我认为你需要创建一个带有标签的 BaseActivity

      abstract public class BaseActivity extends FragmentActivity {
      
      }
      

      所有其他活动都扩展了 BaseActivity

      编辑

      给你的小例子

      BaseActivity.java

       abstract public class BaseActivity extends Activity implements TabListener {
      
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_first);
          ActionBar actionBar = getActionBar();
          // add tabs to actionbar
          actionBar.addTab(actionBar.newTab().setText("TAB 1")
                  .setTabListener(this));
          actionBar.addTab(actionBar.newTab().setText("TAB 2")
                  .setTabListener(this));
      
      }
      
      }
      

      FirstActivity.java

         public class FirstActivity extends BaseActivity {
      
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_first);
      }
      
      @Override
      public void onTabReselected(Tab tab, FragmentTransaction ft) {
          // TODO Auto-generated method stub
      
      }
      
      @Override
      public void onTabSelected(Tab tab, FragmentTransaction ft) {
          Toast.makeText(getApplicationContext(),
                  tab.getText() + " selected in FirstActivity",
                  Toast.LENGTH_SHORT).show();
      
      }
      
      @Override
      public void onTabUnselected(Tab tab, FragmentTransaction ft) {
          // TODO Auto-generated method stub
      
      }
      
      }
      

      SecondActivity.java

          public class SecondActivity extends BaseActivity {
      
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_first);
      }
      
      @Override
      public void onTabReselected(Tab tab, FragmentTransaction ft) {
          // TODO Auto-generated method stub
      
      }
      
      @Override
      public void onTabSelected(Tab tab, FragmentTransaction ft) {
          Toast.makeText(getApplicationContext(),
                  tab.getText() + " selected in SectondActivity",
                  Toast.LENGTH_SHORT).show();
      
      }
      
      @Override
      public void onTabUnselected(Tab tab, FragmentTransaction ft) {
          // TODO Auto-generated method stub
      
      }
      
        }
      

      【讨论】:

        【解决方案4】:

        您需要在 onclick 方法中添加/替换另一个片段,而不是启动另一个活动

        【讨论】:

          【解决方案5】:

          除非您确实要编写一个超类,在继承自该超类的所有活动中实现选项卡栏,否则您可以尝试用另一个片段替换您的片段。也节省了很多内存。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-03-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-06-17
            • 2012-01-21
            相关资源
            最近更新 更多