2012-10-30 101 views
1

我需要使用選項卡布局,其中我嘗試以編程方式訪問2個選項卡中的兩個活動類。我試過但在運行時出錯。參考下我的代碼,測試活動以編程方式在android中的選項卡布局

public class TestActivity extends TabActivity { 
    protected static final View View = null; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState);   


     Resources ressources = getResources(); 
     TabHost tabHost = getTabHost(); 
     // Android tab 
       Intent intentAndroid = new Intent().setClass(this, AndroidActivity.class); 
       TabSpec tabSpecAndroid = tabHost 
        .newTabSpec("Android") 

        .setContent(intentAndroid); 

       tabHost.addTab(tabSpecAndroid); 
     setContentView(tabHost); 

    } 
} 

Android的活動(這需要在名稱andriod顯示選項卡訂單活動)

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.TextView; 

public class AndroidActivity extends Activity 
{ 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     TextView textview = new TextView(this); 
     textview.setText("This is Android tab"); 
     setContentView(textview); 
    } 
} 

我不知道什麼是錯的吧。請以編程方式提供TabLayout的簡單示例(不使用任何xml文件)。

+0

你可以發佈堆棧跟蹤? –

+0

堆棧跟蹤?這是什麼意思,即時通訊新的Android – shivcena

+0

您的LogCat輸出錯誤 –

回答

1

創建一個父類的標籤,以顯示所有其他類

import android.app.TabActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.TabHost.TabSpec; 
import android.content.Intent; 
import android.content.res.Resources; 
import android.widget.TabHost; 

public class TestActivity extends TabActivity { 
protected static final View View = null; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState);   

    Resources ressources = getResources(); 
    TabHost tabHost = getTabHost(); 
    // Android tab 
      Intent intentAndroid = new Intent().setClass(this, AndroidActivity.class); 
      TabSpec tabSpecAndroid = tabHost 
       .newTabSpec("Android") 
       //add .png type images in res folder hdpi,ldpi,mdpi,xhdpi 
tabSpecAndroid.setIndicator("",getResources().getDrawable(R.drawable.arrival));//arrival is the name of png image, delete this line if u hav no images 
       .setContent(intentAndroid); 
      tabSpecAndroid.setIndicator("Android"); 
      tabHost.addTab(tabSpecAndroid);  

    //Welcome tab 
      Intent intentBus = new Intent().setClass(this, Welcome.class); 
      TabSpec tabSpecBus = tabHost 
        .newTabSpec("Welcome") 
        .setContent(intentBus); 
      tabSpecBus.setIndicator("Welcome"); 
      tabHost.addTab(tabSpecBus);  
} 
} 

創建中,我們要在標籤,以顯示第一子類

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.TextView; 

public class AndroidActivity extends Activity 
{ 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    TextView textview = new TextView(this); 
    textview.setText("This is Android tab"); 
    setContentView(textview); 
} 
} 

創建中,我們要在標籤順序

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.TextView; 
public class Welcome extends Activity 
{ 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    TextView textview = new TextView(this); 
    textview.setText("This is Welcome tab"); 
    setContentView(textview); 
} 
} 

在android系統manifest.cml 添加所有子類

<activity android:name=".AndroidActivity"  android:theme="@android:style/Theme.Black.NoTitleBar"></activity> 
    <activity android:name=".Welcome" android:theme="@android:style/Theme.Black.NoTitleBar"></activity> 
</application> 
顯示第二子類

現在運行e代碼,多數民衆贊成

0

A TabActivity可能已經包含該內容。儘量不要致電setContentView(),看看是否可以解決您的問題。

+0

是我的兩個班是對的?如果我刪除setcontent視圖,我得到的錯誤,如「引起:java.lang.IllegalArgumentException:您必須指定一種方法來創建選項卡指標。」在logcat – shivcena

+0

請給我簡單的示例,如果你有編程。沒有任何xml文件 – shivcena

+0

你必須在'TabSpec'對象上調用'setIndicator()'。 –

相關問題