私は問題があります。 Androidアプリケーションを開発しています。
私はこのように最初のレイアウトに2番目のレイアウトを含めました:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent" >
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="300dp"
Android:layout_height="match_parent"
Android:layout_gravity="clip_horizontal"
Android:layout_alignParentLeft="true"
Android:id="@+id/rlMenu"
>
<Button
Android:id="@+id/bMusteriler"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:text="Musteriler"
Android:textSize="45dp"
Android:layout_alignParentLeft="true"
/>
</RelativeLayout>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="match_parent"
Android:layout_toRightOf="@id/rlEkranlar"
>
<include
Android:id="@+id/include1"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
layout="@layout/ikinci" />
</RelativeLayout>
</RelativeLayout>
問題は、ボタンをクリックしたときに含まれるレイアウトをどのように変更できるかです(Javaコード)?)
私の英語でごめんなさい。ありがとう。
ViewFlipper
ステートメントのRelativeLayout
の内側にinclude
をお勧めします。このようにしてみてください:
<ViewFlipper xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/vf"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content" >
<include Android:id="@+id/include1" layout="@layout/ikinci" />
<include Android:id="@+id/map" layout="@layout/third_layout" />
</ViewFlipper>
以下のようにViewFlipperにアクセスします。最初に最初のレイアウトが出力されます:
ViewFlipper vf = (ViewFlipper)findViewById(R.id.vf);
ボタンのonClickListenerの場合:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
vf.setDisplayedChild(1);
}
});
コードでレイアウトを変更するには、2つの方法があります。
A.可視性を変更します。 XMLに2つの異なるレイアウトを含めます。
<include
Android:id="@+id/id1"
Android:visibility="visible"/>
<include
Android:id="@+id/id2"
Android:visibility="gone"/>
コードではこれを使用します:
findViewById(R.id.id1).setVisibility(View.GONE);
findViewById(R.id.id2).setVisibility(View.VISIBLE);
B.手動で子を追加します。現在使用しているのと同じxmlを使用して、子を追加または削除できるコードを追加します。
yourRelativeLayout.removeAllViews();
yourRelativeLayout.addView(viewToInclude);
オフトピック:
RelativeLayoutにxmlns:Android
paramを記述する必要はありません。レイアウトファイルの最上位のタグのみ。
他のxmlを含めたxmlの現在のビューのインスタンスを取得し、findViewById()
を使用してみましたか?ビューvは最初のレイアウトであり、このビューに対して.findViewById()
を使用します