0

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

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

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

4

5 回答 5

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));

}

}

第一活动.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

}

  }
于 2013-08-16T11:59:07.020 回答
0

希望这可以帮助你

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

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

于 2013-08-16T11:53:13.467 回答
0

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

于 2013-08-16T11:53:22.463 回答
0

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

于 2013-08-16T13:01:07.807 回答
0

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

于 2013-08-16T12:48:40.940 回答