2011-09-19 20 views
0

私はアンドロイドで作業しています。実行時に水平スクロールビューを作成したいのですが、この水平ビューをJavaコードで作成したいと思っています。Android:水平スクロールビューの作成方法は?

は、これは、Javaクラスの私のコードです

package com.pericent; 

import android.app.TabActivity; 
import android.content.Intent; 
import android.content.res.Resources; 
import android.os.Bundle; 
import android.util.Log; 
import android.widget.TabHost; 

public class HelloTabWidget extends TabActivity { 

    private String TAG="HelloTabWidget"; 

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

     Resources res = getResources(); // Resource object to get Drawables 
     TabHost tabHost = getTabHost(); // The activity TabHost 
     TabHost.TabSpec spec; // Resusable TabSpec for each tab 
     Intent intent; // Reusable Intent for each tab 

     for(int i=0;i<10;i++) 
     { 

     // Create an Intent to launch an Activity for the tab (to be reused) 
       intent = new Intent().setClass(this,ArtistsActivity.class); 
       Log.v(TAG,"---artist activity is called---"); 
     // Initialize a TabSpec for each tab and add it to the TabHost 
       spec = tabHost.newTabSpec("artists").setIndicator("Artists",res.getDrawable(R.drawable.ic_tab_artists)).setContent(intent); 
       tabHost.addTab(spec); 
     } 
     setContentView(tabHost); 
    } 
} 


this is activity ArtistActivity which is used in above code to make Tab Widget:- 
package com.pericent; 

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

public class ArtistsActivity extends Activity { 
    private String TAG="ArtistsActivity"; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     TextView textview=new TextView(this); 
     textview.setText("This is Artist Activity"); 
     setContentView(textview); 
     Log.v(TAG,"---in artist activity---"); 
    } 
} 

and this is the xml file used in above code:- 
<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- When selected, use grey --> 
    <item android:drawable="@drawable/ic_tab_artists_grey" 
      android:state_selected="true" /> 
    <!-- When not selected, use white--> 
    <item android:drawable="@drawable/ic_tab_artists_white" /> 
</selector> 
this above xml is used to create tab widget. 

this is the output of my above code:- 
すべてのウィジェットを画面に表示している私の出力で

enter image description here

しかし、私は一度に4つのタブを表示すると、他を示さなければなりませんスクロールした後だから、私のjavaコードにスクロール可能な機能を追加するにはどうすればいいですか?

ありがとうございます。

答えて

5

このようにしてください

HorizontalScrollView hr=new HorizontalScrollView(this); 
hr.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); 

LinearLayout layout=new LinearLayout(this); 
layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); 

for(int i=0;i<100;i++){ 
    TextView txt=new TextView(this); 
    txt.setText("Text " + i); 
    layout.addView(txt); 
} 
hr.addView(layout); 

mainLayout.addView(hr); 

上記のコードでは、テキストビューを追加しました。テキストビューではなく任意のビューを追加することができます。

1

ここに行く:

ScrollableTabHost.java

をScrollableTabHostはTabHostのような、より多くのアイテムを合わせて、追加のscrollviewで動作するように設計されています。

0

は、私は、これはあなたがそれを使用する方法これはあるプロジェクトSource

の源である、あなたhttp://code.google.com/p/mobyfactory-uiwidgets-android/

編集

に有用である可能性が、このリンクに出くわしたAdd Tab

+0

私にリンクを提供していただきありがとうございますが、そのページでは私の主な動機である水平スクロールビューの概念を見つけることができませんでした。実行時に水平スクロールビューを作成できるコンテンツを私に提供してください。 –

関連する問題