1
は、私は次のTabActivity今アンドロイド:タブの選択に基づいてTabActivityでのImageButtonを変更する方法
私はタブ「AMTにセトル」を選択し、上部のIMAGEBUTTONは別のImageButtonに変更する必要がありますしています「メンバー」タブが選択されている場合は、ボタンは表示されません。 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>
を使用しようと、私たちはどのように/選択されたタブを知ることができますかわった?サンプルコードを教えてください。 –
これを参照してくださいhttp://stackoverflow.com/questions/2243360/how-to-use-tabhost-ontabchangelistener-in-android –
ありがとうございます。その素晴らしい仕事。タブからTabActivityのボタンにアクセスできますか?つまり、TabActivityのボタンをクリックすると、タブ内で何らかのアクションを実行する必要があります。 –