Android: CustomTabs - PullRequest
       7

Android: CustomTabs

0 голосов
/ 14 января 2011

Я решил использовать представления для моего интерфейса вкладок ... Я следую учебному пособию по интерфейсу вкладок, и результатом этого урока являются 4 вкладки без содержимого (текста) под моими вкладками.как работают представления .. как я могу сделать метод для установки содержимого на вкладку из другого класса .. Так что main.java - это мой основной файл с представлениями (вкладками).Tab1.java имеет код навигации по Google Maps.

Как я могу вызвать метод setupTab и установить функцию навигации на вкладку 1.

Здесь вы можете увидеть мой код:Заранее спасибо!

 package CustomTabs;  
    import android.app.Activity;
    import android.graphics.drawable.Drawable;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.TabHost;
    import android.widget.TextView;
    import android.widget.TabHost.TabContentFactory;
    import android.widget.TabHost.TabSpec;

    public class CustomTabs extends Activity {

     private TabHost mTabHost;

     private void setupTabHost() {
      mTabHost = (TabHost) findViewById(android.R.id.tabhost);
      mTabHost.setup();
     }

     /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      // construct the tabhost
      setContentView(R.layout.main);

      setupTabHost();

      setupTab(new TextView(this), "Tab 1", getResources().getDrawable(R.drawable.ic_tab_artists));
      setupTab(new TextView(this), "Tab 2", getResources().getDrawable(R.drawable.ic_tab_artists));
      setupTab(new TextView(this), "Tab 3", getResources().getDrawable(R.drawable.ic_tab_artists));
      setupTab(new TextView(this), "Tab 4", getResources().getDrawable(R.drawable.ic_tab_artists));
      {
       final View v = mTabHost.getTabWidget().getChildAt(0);
       v.setBackgroundDrawable(getResources().getDrawable(R.drawable.tab_bg_selector));
       TextView tv = (TextView) v.findViewById(android.R.id.title);
       tv.setTextColor(this.getResources().getColorStateList(R.drawable.tab_text_selector));
      }
      {
       final View v = mTabHost.getTabWidget().getChildAt(1);
       v.setBackgroundDrawable(getResources().getDrawable(R.drawable.tab_bg_selector));
       TextView tv = (TextView) v.findViewById(android.R.id.title);
       tv.setTextColor(this.getResources().getColorStateList(R.drawable.tab_text_selector));
      }
      {
       final View v = mTabHost.getTabWidget().getChildAt(2);
       v.setBackgroundDrawable(getResources().getDrawable(R.drawable.tab_bg_selector));
       TextView tv = (TextView) v.findViewById(android.R.id.title);
       tv.setTextColor(this.getResources().getColorStateList(R.drawable.tab_text_selector));
      }
      {
       final View v = mTabHost.getTabWidget().getChildAt(3);
       v.setBackgroundDrawable(getResources().getDrawable(R.drawable.tab_bg_selector));
       TextView tv = (TextView) v.findViewById(android.R.id.title);
       tv.setTextColor(this.getResources().getColorStateList(R.drawable.tab_text_selector));
      }

     }

     private void setupTab(final View view, final String tag, Drawable icon) {
      TabSpec setContent = mTabHost.newTabSpec(tag).setIndicator(tag, icon).setContent(new TabContentFactory() {
       public View createTabContent(String tag) {return view;}
      });
      mTabHost.addTab(setContent);

     }
    }

Ответы [ 2 ]

0 голосов
/ 30 августа 2011

Если я правильно понимаю, вы хотите добавить свои действия в качестве содержимого ваших вкладок, поэтому вам нужно добавить намерение в методе setupTab. Пример:

setupTab(new TextView(this), "title", getResources().getDrawable(R.drawable.icon), new Intent(this, yourclass.class));

Это запускает намерения, необходимые для ваших вкладок. Теперь для того, чтобы Intents был виден, вы должны добавить его в ваш метод setupTab следующим образом:

private void setupTab(final View view, final String tag, Drawable drawable, Intent     intent) {
    View tabview = createTabView(mTabHost.getContext(), tag, 0);
    TabSpec setContent = mTabHost.newTabSpec(tag).setIndicator(tabview).setContent(intent);
    mTabHost.addTab(setContent);

Если это не то, что вы ищете, то вам нужно повторить свой вопрос.

0 голосов
/ 14 января 2011

это , что вы хотите? В основном вам просто нужно установить намерение и связать его с соответствующей вкладкой.

...