0

私のタブホストtools.java:

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tabtools);

    Resources res = getResources();
    TabHost tabHost = getTabHost();
    TabHost.TabSpec spec;
    Intent intent;

    // TabDados
    intent = new Intent().setClass(this, ToolDadosTubuCirc.class);
    spec = tabHost.newTabSpec("dados")
            .setIndicator("Dados", res.getDrawable(R.drawable.icondados))
            .setContent(intent);
    tabHost.addTab(spec);
    // TabLegenda
    intent = new Intent().setClass(this, ToolLegendaTubuCirc.class);
    spec = tabHost
            .newTabSpec("legenda")
            .setIndicator("Legenda",
                    res.getDrawable(R.drawable.iconlegenda))
            .setContent(intent);
    tabHost.addTab(spec);
    // TabCalcular
    intent = new Intent().setClass(this, ToolCalcularTubuCirc.class);
    spec = tabHost
            .newTabSpec("calcular")
            .setIndicator("Calcular",
                    res.getDrawable(R.drawable.iconcalcular))
            .setContent(intent);
    tabHost.addTab(spec);
    // TabCorrente
    tabHost.setCurrentTab(0);
}}

各インテントはアクティビティを呼び出します。そして、各「file.java」コマンド内で計算を実行する必要があります。

「dados.java」内で、ユーザーの情報を取得します。「計算」タブをクリックすると、すべてのデータが完了したことを確認する必要があります。

ボタンのように、各タブに「onclicklistener」が必要だと思いますよね??

どのように?タブ「Dados」タブ「Legenda」タブ「calcular」がクリックされたときにコードを実行するイベントを作成する方法は?

注意: ファイル「ToolDadosCircular.java」からどのタブがクリックされたかを確認する必要があります。

編集: tabtools.xml コード:

<TabHost
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_above="@+layout/rowLog"
    android:layout_below="@+layout/rowLine" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:padding="5dp" >

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

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:padding="5dp" />

    </LinearLayout>
</TabHost>
4

1 に答える 1

0

試す

tabHost.getChildAt(yourtab).setOnClickListener(new View.onClickListener()
{
   @Override public void onClick(View view){
       //your code
   }
}

編集:あなたのクラスはこのようなものだと思います

public class ToolDadosTubuCirc extends Activity{
    @Override public void onCreate(Bundle bundle){
          //code...
          TabHost tabHost = (TabHost) getParent().findViewById(yourTabHostId);
          //do what you want with tabHost
          //code...
    }
}
于 2012-04-16T14:19:55.217 に答える