【问题标题】:when i select the contacts tab the tab bar is vanished当我选择联系人选项卡时,选项卡栏消失了
【发布时间】:2024-01-17 12:46:01
【问题描述】:

当我从标签栏中选择联系人标签时,我在标签栏中有四个标签,标签栏消失了。我想在选择联系人标签时显示标签栏。 这是代码 TabActivity.java

public class Tab_Activity extends TabActivity 
{

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

        Resources obj_res = getResources();


        TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost);


         TabSpec m_tab1 = tabHost.newTabSpec("First Tab");
         TabSpec m_tab2 = tabHost.newTabSpec("Second Tab");




         Intent intent1 = new Intent().setClass(this, Phone.class);
         Intent intent3 = new Intent().setClass(this, Settings.class);
         Intent intent4 = new Intent().setClass(this, Contact.class);


         m_tab4.setIndicator("Tab4");
         m_tab4=tabHost.newTabSpec("tab4").setIndicator("", obj_res.getDrawable(R.drawable.pic1)).setContent(intent3);



         m_tab5.setIndicator("Tab4");
         m_tab5=tabHost.newTabSpec("tab4").setIndicator("", obj_res.getDrawable(R.drawable.pic3)).setContent(intent4);

         tabHost.addTab(m_tab2);
         tabHost.addTab(m_tab4);
         tabHost.addTab(m_tab5);


    }}

Contact.java

public class Contact extends Activity 
{
    protected void onCreate(Bundle savedInstanceState)
    {
        //this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        //this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.contact);

        Intent Contacts = new Intent(Intent.ACTION_GET_CONTENT);
        Contacts.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
        Contacts.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
        startActivityForResult(Contacts, 1); 

}}

【问题讨论】:

  • 因为你启动了另一个应用的意图......你不能在你的活动中嵌入其他应用的活动......
  • selvin 请告诉我该怎么做?

标签: java android android-intent tabs tabview


【解决方案1】:

这是您的活动,您可以在其中放置要显示的标签。

    public class GuestListAdminActivity extends FragmentActivity implements
    ActionBar.TabListener {

private ViewPager viewPager;
private TabsPagerAdapter mAdapter;
private ActionBar actionBar;
// Tab titles
private String[] tabs = { "Bride", "Groom", "Create Gueset List" };



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

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



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

    getActionBar().setHomeButtonEnabled(true);

    // 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 扩展 FragmentPagerAdapter {

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

@Override
public Fragment getItem(int index) {





    switch (index) {
    case 0:


         return new BrideGuestList();

    case 1:

        return new GroomGuestList();
    case 2:

       return new NewGuestListActivity();

    default:
        break;
    }
    return null;


}




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

}

并使您的片段活动如下所示

public class BrideGuestList extends android.support.v4.app.Fragment{

  @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.bride_guest_list, container, false);

         return rootView;

}

【讨论】:

  • 这不是我想要的解决方案
  • 然后解释你想要什么。
  • 我面临的问题是当我选择选项卡时,活动出现但选项卡栏消失了。在联系人类中,我启动了访问电话联系人的新意图。任何人都知道不启动新意图,我们可以访问电话联系人。或者如果我在联系人类中启动新意图,则该栏是可见的。