ich habe ein Problem. Ich entwickle Android-Anwendung.
Ich habe das zweite Layout in das erste Layout eingefügt:
<?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>
Problem ist, wie kann ich das enthaltene Layout ändern, wenn ich auf eine Schaltfläche klicke (auf Java-Code)?
Entschuldigung für mein Englisch. Vielen Dank.
Ich empfehle ViewFlipper
in RelativeLayout
Ihrer include
-Anweisungen. Versuchen Sie es so:
<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>
Greifen Sie wie folgt auf den ViewFlipper zu. Zunächst wird das erste Layout ausgegeben:
ViewFlipper vf = (ViewFlipper)findViewById(R.id.vf);
Für Button onClickListener:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
vf.setDisplayedChild(1);
}
});
Es gibt zwei Möglichkeiten, Layouts im Code zu ändern:
A. Sichtbarkeit ändern. Fügen Sie zwei verschiedene Layouts in Ihre XML ein:
<include
Android:id="@+id/id1"
Android:visibility="visible"/>
<include
Android:id="@+id/id2"
Android:visibility="gone"/>
und im Code verwenden Sie dies:
findViewById(R.id.id1).setVisibility(View.GONE);
findViewById(R.id.id2).setVisibility(View.VISIBLE);
B. Kinder manuell hinzufügen. Verwenden Sie dasselbe XML, das Sie jetzt verwenden, und fügen Sie Code hinzu, den Sie untergeordnete Elemente hinzufügen oder löschen können:
yourRelativeLayout.removeAllViews();
yourRelativeLayout.addView(viewToInclude);
Offtopic:
Sie müssen nicht xmlns:Android
param in RelativeLayout schreiben. Nur für das oberste Tag in der Layoutdatei.
Haben Sie versucht, die Instanz der aktuellen Ansicht der XML-Datei abzurufen, die Sie in die andere XML eingefügt haben, und verwenden Sie findViewById()
. Ansicht v ist das erste Layout und für diese Ansicht verwenden Sie .findViewById()