1

私は次のTabActivityを持っています

ここに画像の説明を入力してください

これで、[Settle Amt]タブを選択すると、上部のimagebuttonが別のImageButtonに変わり、[Members]タブを選択すると、ボタンが表示されなくなります。ImageButtonはTabActivityにあります。タブの選択に基づいてボタンを動的に変更するにはどうすればよいですか?

これが私のTabActivityです:

public class TransactionTab extends TabActivity{
    String groupid="";
    TabHost tb;
    TabSpec tab1,tab2,tab3;
    Intent translist,settleamt,mems;
    Context context = TransactionTab.this;
    ImageButton v_createtrans;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.transactiontab);

        Intent grpintent = getIntent();
        groupid = grpintent.getStringExtra("grpid");

        tb = (TabHost)findViewById(android.R.id.tabhost);
        v_createtrans = (ImageButton)findViewById(R.id.x_createtrans);

        tab1 = tb.newTabSpec("id1");
        tab2 = tb.newTabSpec("id2");
        tab3 = tb.newTabSpec("id3");

        mems = new Intent(context,MemberList.class);
        mems.putExtra("grpid", groupid);
        mems.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

        translist = new Intent(context,TransactionList.class);
        translist.putExtra("grpid", groupid);
        translist.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

        settleamt = new Intent(context,SettleAmount.class);
        settleamt.putExtra("grpid", groupid);
        settleamt.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

        View layview = LayoutInflater.from(context).inflate(R.layout.tab_buttonbg, null);
        Button bt = (Button) layview.findViewById(R.id.tabuton);
        bt.setText("Members");
        tab1.setIndicator(layview);
        tab1.setContent(mems);

        layview = LayoutInflater.from(context).inflate(R.layout.tab_buttonbg, null);
        Button bt1 = (Button) layview.findViewById(R.id.tabuton);
        bt1.setText("Transactions");
        tab2.setIndicator(layview);
        tab2.setContent(translist);

        layview = LayoutInflater.from(context).inflate(R.layout.tab_buttonbg, null);
        Button bt2 = (Button) layview.findViewById(R.id.tabuton);
        bt2.setText("Settle Amt");
        tab3.setIndicator(layview);
        tab3.setContent(settleamt);

        tb.getTabWidget().setDividerDrawable(R.drawable.divider);

        tb.addTab(tab1);
        tb.addTab(tab2);
        tb.addTab(tab3);

        tb.setCurrentTab(1);

        v_createtrans.setOnClickListener(new OnClickListener(){
            public void onClick(View v){
                Intent newtrans = new Intent(context,NewTransaction.class);
                newtrans.putExtra("grpid", groupid);
                startActivity(newtrans);
            }
        });

    }

およびレイアウトxml:

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

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:background="@color/app_header_color">

        <ImageButton 
            android:id="@+id/x_createtrans"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/addbtn"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_marginRight="10dp"
            android:background="@null">
        </ImageButton>

    </RelativeLayout>

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

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

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

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

        </LinearLayout>

    </TabHost>

</LinearLayout>
4

1 に答える 1

0

使用してみてください

   TabHost.SetOnTabChangedListener(this){
 protected void OnTabChanged()
 {

 }
}
于 2012-04-20T13:47:40.453 に答える