如何为android中的仪表板选项卡添加唯一ID?

时间:2015-09-28 07:52:28

标签: java android xml

我的信息中心中有3个标签,即

  1. 邀请
  2. 事件
  3. GROUPCHAT
  4. 我以编程方式添加了所有这些标签,在我的布局代码id:tabContent中使用添加所有标签。我的 Userdashboard.xml 代码位于下方,

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
    
        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1" />
    
        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="-4dp"
            android:layout_weight="0" />
    
    </LinearLayout>
    

    在下面的代码中,所有标签都被分组为&#34; tabHost&#34;。现在我需要为所有三个标签设置唯一ID,但我不知道如何设置唯一ID,请提前感谢。

    public class UserDashBoardActivity extends ActionBarActivity {
    
        /** Called when the activity is first created. */
        private static final String TAB_1_TAG = "Invitation";
        private static final String TAB_2_TAG = "Event";
        private static final String TAB_3_TAG = "GroupChat";
        private FragmentTabHost tabHost;
    
        private Context context;
        private SharedPreferences sharedpreferences;
        private Gson gson = new Gson();
        private Menu menu;
    
        @Override
        protected void onStart() {
            super.onStart();
            AppActivityStatus.setActivityStarted();
            AppActivityStatus.setActivityContext(context);
        }
    
        @Override
        protected void onPause() {
            super.onPause();
            AppActivityStatus.setActivityStoped();
    
        }
    
        @Override
        protected void onResume() {
            super.onPause();
            AppActivityStatus.setActivityStarted();
        }
    
        @Override
        protected void onStop() {
            super.onStop();
            AppActivityStatus.setActivityStoped();
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            super.onCreateOptionsMenu(menu);
            this.menu=menu;
            getMenuInflater().inflate(R.menu.menu_user_dash_board, menu);
            return true;
            //return super.onCreateOptionsMenu(menu);
        }
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.user_dash_board);
            context = getApplicationContext();
            sharedpreferences = context.getSharedPreferences(Constants.SHARED_PREFERENCE_NAME,
                    Context.MODE_PRIVATE);
            // Get TabHost Reference
            tabHost= (FragmentTabHost) findViewById(android.R.id.tabhost);
            tabHost.setup(this, getSupportFragmentManager(), android.R.id.tabcontent);
    
           **Invitation,Event,Groupchat tabs** are added here    
    
        tabHost.addTab(tabHost.newTabSpec(TAB_1_TAG).setIndicator("Invitation"), InvitationFragment.class, null);
        tabHost.addTab(tabHost.newTabSpec(TAB_2_TAG).setIndicator("Event"), OccasionFragment.class, null);
        tabHost.addTab(tabHost.newTabSpec(TAB_3_TAG).setIndicator("GroupChat"), GroupChatFragment.class, null);
    
            //invitation tab highlighted by default
            tabHost.getTabWidget().setCurrentTab(0);
            tabHost.getTabWidget().getChildAt(0).setBackgroundColor(getResources().getColor(R.color.Orange));
            tabHost.getTabWidget().getChildAt(1).setBackgroundColor(getResources().getColor(R.color.scandal));
            tabHost.getTabWidget().getChildAt(2).setBackgroundColor(getResources().getColor(R.color.scandal));
    
    
            //onTabChangedListener added for move one tab to others
    
            tabHost.setOnTabChangedListener(new OnTabChangeListener() {
    
                @Override
                public void onTabChanged(String arg0) {
                       setTabColor(tabHost);
                }
            });
    
    
        }
            if(tabHost.getCurrentTab()==0)
            tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab()).setBackgroundColor(getResources().getColor(R.color.Orange));//1st tab selected
            else if(tabHost.getCurrentTab()==1)
            tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab()).setBackgroundColor(getResources().getColor(R.color.Orange)); //2nd tab selected
            else if(tabHost.getCurrentTab()==2)
            tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab()).setBackgroundColor(getResources().getColor(R.color.Orange)); //3rd tab selected
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
    
            int id = item.getItemId();
            // noinspection SimplifiableIfStatement
            if (id == R.id.account_settings) {
                Intent userSettingIntent = new Intent(getApplicationContext(),ActivityUserSettings.class);
                userSettingIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(userSettingIntent);
                return true;
            }
    
            if (id == R.id.profile) {
                Intent profileIntent = new Intent(getApplicationContext(),ImageUploadActivity.class);
                profileIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(profileIntent);
                return true;
            }
    
            if(id == R.id.create_occasion){
    
                Intent occasionAct = new Intent(getApplicationContext(), OccasionActivity.class);
                // Clears History of Activity
                occasionAct.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(occasionAct);
    
            }
            return super.onOptionsItemSelected(item);
        }
    
    }
    

1 个答案:

答案 0 :(得分:0)

tabHost.newTabSpec()的调用将String作为标记。在您的情况下,这些是TAB_1_TAGTAB_2_TAGTAB_3_TAG,因此这些是您分别为每个标签的唯一ID。

您可以在onTabChanged(String arg0) arg0中识别所选标签tabHost.getCurrentTabTag()是所选标签的名称。

此外,您可以使用tabHost.getCurrentTab()按标签标识标签,而不是按标签位置标识.wrapper, .header, .content, .footer { width: 100%; } .header { height: 70px; background: orange; } .footer { background: lightblue; } .content { background: yellow; }