4

在我的 android 应用程序中有一个可滑动的标签布局。它有两个选项卡:新投诉和以前的投诉。单击投诉选项卡时,我需要启动 NewComplain.java。这是我的 NewComplain 类代码段:

新投诉

 public class NewComplain extends SherlockFragmentActivity implements View.OnClickListener {
    private int Year;
    private int Month;
    private int Day;
    private static final int DATE_DIALOG_ID = 1;
    private View viewLoad;
    private TextView heading, date;
    private Spinner spiComplain, spiProduct;
    private EditText description, contInfo;
    private Button btnDate;
    private ArrayAdapter<String> complainAdapter, prodAdapter;
    private ArrayList<String> lstComplain = new ArrayList<String>();
    private ArrayList<String> lstProdNames = new ArrayList<String>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        viewLoad = LayoutInflater.from(NewComplain.this).inflate(
                R.layout.new_complain, null);
        setContentView(viewLoad);                       
    }
}

这 id 我的TabsPagerAdapter类。

 package xont.virtusel.v4.controller.sale;

    import android.content.Intent;
    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentManager;
    import android.support.v4.app.FragmentPagerAdapter;

    public class TabsPagerAdapter extends FragmentPagerAdapter {

    public TabsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int index) {

        switch (index) {
        case 0:

        case 1:

        }

        return null;
    }

    @Override
    public int getCount() {
        // get item count - equal to number of tabs
        return 2;
    }

}

这是我的主要活动课。

 package xont.virtusel.v4.controller.sale;

    import xont.virtusel.v4.controller.R;
    import android.app.ActionBar;
    import android.app.ActionBar.Tab;
    import android.app.FragmentTransaction;
    import android.os.Bundle;
    import android.support.v4.app.FragmentActivity;
    import android.support.v4.view.ViewPager;

    public class CustomerComplainActivity extends FragmentActivity implements ActionBar.TabListener {

    private ViewPager viewPager;
    private TabsPagerAdapter mAdapter;
    private ActionBar actionBar;
    private String[] tabs = { "New Complain", "Previous Complains" };

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

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

        viewPager.setAdapter(mAdapter);
        actionBar.setDisplayHomeAsUpEnabled(true);
        //actionBar.setHomeButtonEnabled(true);
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        //actionBar.setDisplayShowHomeEnabled(false);
        //actionBar.setDisplayShowTitleEnabled(false);

        // 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) {
    }

}

我应该如何将切换活动语句添加到此 TabsPagerAdapter 类中。我用了意图。但它没有用。任何人都可以请这么好心来澄清这个问题。提前感谢

4

2 回答 2

1

你的问题到底是什么?

如果你不能开始新Fragment的,试试这个:在TabsPagerAdapter方法public Fragment getItem()

@Override
    public Fragment getItem(int index) {

        switch (index) {
        case 0:
            return new NewComplain();
        case 1:
            //return some other class
        }

        return null;
    }

NewComplain并为类创建一个构造函数

于 2015-02-04T02:20:30.007 回答
0

您正在添加片段,而不是活动。在您的选项卡侦听器中,您将获得一个 FragmentTransaction,您应该使用它来更新您的哪些片段相对于按下的选项卡显示。

另外,不要在创建时在片段中膨胀,在创建视图中这样做。

于 2015-02-04T19:27:34.523 回答