Android Tabs Просмотров - PullRequest
       10

Android Tabs Просмотров

1 голос
/ 12 января 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);

     }
    }

1 Ответ

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

Вам нужно создать какую-то активность для этого. Мой пример занял 2 Activity, первый Activity расширяет TabActivity, а второй расширяет Activity.

Вот мой простой пример:

  • Активность, расширяющая возможности TabActivity

    package com.bsoft.activity;

    import android.app.TabActivity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.widget.TabHost;
    import com.bsoft.shared.Shared;

    public class ViewActivity extends TabActivity {

    @Override
    public void onCreate(Bundle bundle) {
              super.onCreate(bundle);

             String[] strVal = this.getIntent().getExtras().getString("content").split(Shared.SPACE);
             setTitle(strVal[1]);

             Intent paliIntent = new Intent(this, PaliActivity.class);
             paliIntent.putExtra("val", strVal[2]);

             Intent indonesiaIntent = new Intent(this, IndonesiaActivity.class);
             indonesiaIntent.putExtra("val", strVal[3]);

            TabHost tabHost = getTabHost();     
            tabHost.addTab(tabHost.newTabSpec("one").setIndicator("Pali").setContent(paliIntent));  
           tabHost.addTab(tabHost.newTabSpec("two").setIndicator("Indonesia").setContent(indonesiaIntent));         
        }
    }
  • Другое занятие:

    package com.bsoft.activity;

    import android.app.Activity;
    import android.os.Bundle;
    import android.webkit.WebView;
    import com.bsoft.shared.Shared;

    public class IndonesiaActivity extends Activity {

    @Override
    public void onCreate(Bundle bundle) {
              super.onCreate(bundle);
              setContentView(R.layout.indonesia);

              String val = this.getIntent().getExtras().getString("val");       

              WebView indonesiaContent = (WebView) findViewById(R.id.wvIndoContent);
              indonesiaContent.loadData("" + val.replace("\n", "<br>") + "", Shared.MIME_TYPE, Shared.ENCODING);

              Shared s = new Shared();
             s.SetZoomControls(indonesiaContent, this);             
       }            
    }
...