我们如何通过使用片段选项卡调用另一个活动?

时间:2013-08-16 11:44:50

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

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

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

它将进入另一项活动,但它没有显示标签栏。 我想如果有任何活动,那么tabbar仍然在前面。 请帮帮我。

5 个答案:

答案 0 :(得分:0)

希望这可以帮助你

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

并且为了支持所有版本,您可以使用Action bar sherlock库,该库也在该教程中提供。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我认为您需要使用

等标签创建一个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

}

  }

答案 3 :(得分:0)

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

答案 4 :(得分:0)

除非你想编写一个在从你的超类继承的所有活动中实现tab-bar的超类,否则你可以尝试用另一个片段替换你的片段。节省了大量的内存。