0

Я создал вкладки в виде представлений. Но я не нашел никакой информации о том, как манипулировать представлениями тезисов. Например, если я хочу отобразить listview в одной и форме (tablelayout) в другой. Могу ли я иметь отдельные макеты для каждой вкладки? И что еще более важно, где я могу добавить код Java для каждой вкладки?Как работать с вкладками в виде представлений?

Вот мой Java-код:

public class TabWorkEntryActivity extends TabActivity { 
/** Called when the activity is first created. */ 


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

    setContentView(R.layout.tabworkentry); 

TabHost mTabHost = getTabHost(); 


    mTabHost.addTab(mTabHost.newTabSpec("top10").setIndicator("Top 10").setContent(R.id.Top_10)); 
    mTabHost.addTab(mTabHost.newTabSpec("billable").setIndicator("Billable").setContent(R.id.Billable)); 
    mTabHost.addTab(mTabHost.newTabSpec("product").setIndicator("Product").setContent(R.id.Product)); 
     mTabHost.addTab(mTabHost.newTabSpec("regular").setIndicator("Regular").setContent(R.id.General)); 

    mTabHost.setCurrentTab(3); 


} 

Любая любопытная помощь приветствуется.

ответ

1

Есть два основных способа размещения контента и работы с закладками: 1. Вы создаете деятельность, и поставить свою деятельность в tabHost 2. Вы имеете дело с содержанием, в том же коде вы добавляете вкладки (взрывать все вещи установки) Я всегда использую 2-й путь, потому что мои коды организованы, так что это не очень большой ...

Вот макет образца, с содержанием в кириллице ...

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <TabHost 
     android:id="@+id/tabhost" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical" > 

      <TabWidget 
       android:id="@android:id/tabs" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" > 
      </TabWidget> 

      <FrameLayout 
       android:id="@android:id/tabcontent" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" > 

       <LinearLayout 
        android:id="@+id/checkall_tab" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" > 

        <include 
         android:layout_width="match_parent" 
         android:layout_height="match_parent" 
         layout="@layout/checkall" /> 
       </LinearLayout> 

       <LinearLayout 
        android:id="@+id/view_tab" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" > 

        <include 
         android:layout_width="match_parent" 
         android:layout_height="match_parent" 
         layout="@layout/viewall" /> 
       </LinearLayout> 

       <LinearLayout 
        android:id="@+id/run_program" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" > 

        <include 
         android:layout_width="match_parent" 
         android:layout_height="match_parent" 
         layout="@layout/programs" /> 
       </LinearLayout> 

      </FrameLayout> 
     </LinearLayout> 
    </TabHost> 

</LinearLayout> 
+0

Хорошо. Теперь, если я использую второй подход, могу ли я использовать отдельные макеты для своих вкладок или мне нужно включить все в один макет, например, мою активность? – Harsh

+0

yourTabSpec.setContent (R.id.the_id_of_your_tab); –

+0

«макет» для размещения в tabView должен быть указан в макете узла вкладки ... проверьте, как я это сделал –

0

Я сделал этот код с помощью Android 4.0 tabView. попробуйте понять это ... Вы должны создать экземпляр TabHost, а затем создать вкладки с этим объектом. Затем добавьте вкладку TabHost. Чтобы найтиПросмотр по идентификатору, вам не нужно передавать «вид» на вкладке, к которой вы обращаетесь.

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

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

    checkAll = tabHost.newTabSpec("checkAll"); 
    viewAll = tabHost.newTabSpec("viewAll"); 
    runProgram = tabHost.newTabSpec("runProgram"); 

    viewAll.setContent(R.id.view_tab); 
    viewAll.setIndicator("View All"); 
    tabHost.addTab(viewAll); 

    checkAll.setContent(R.id.checkall_tab); 
    checkAll.setIndicator("Check All"); 
    tabHost.addTab(checkAll); 

    runProgram.setContent(R.id.run_program); 
    runProgram.setIndicator("Run program"); 
    tabHost.addTab(runProgram); 
} 
+0

Я сделал то же самое ING. Не так ли? Мой вопрос теперь предполагаю, что я хочу, чтобы «view_tab» был моим списком, где я могу написать код Java, связанный с этой вкладкой? – Harsh