听单击TabWidget

时间:2012-04-16 14:16:33

标签: android android-tabhost tabwidget onclicklistener

我的tabhost 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>

1 个答案:

答案 0 :(得分: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...
    }
}