1

我在我的项目中使用视图切换器。

在我的 xml 中,我创建了 2 个具有所有相同 ID 的布局。切换视图后,我无法切换到上一个视图,因为我在两种布局中使用相同的 ID。

现在,如何在视图切换器中为两种布局使用 Java 代码中的一个侦听器。我不想创建另一个 id 并创建另一个侦听器来再次切换。

我的xml如下。

<ViewSwitcher xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/profileSwitcher"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="@string/hello_world" />

    <Button
        android:id="@+id/switchBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:text="Switch" />
</RelativeLayout>

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:text="@string/hello_world" />

    <Button
        android:id="@+id/switchBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="Switch" />
</RelativeLayout>

</ViewSwitcher>

我的java代码如下

final ViewSwitcher switcher = (ViewSwitcher) findViewById(R.id.profileSwitcher);
    Button btn = (Button) findViewById(R.id.switchBtn);
    btn.setOnClickListener(new OnClickListener() {

        private boolean switchCheck;

        public void onClick(View v) {
            new AnimationUtils();
            switcher.setAnimation(AnimationUtils.makeInAnimation(getApplicationContext(), true));
            if (!switchCheck) {
                switcher.showNext();
                switchCheck = true;
            } else {
                switcher.showPrevious();
                switchCheck = false;
            }
        }
    });

请帮忙..

4

2 回答 2

0

为 xml 中的父相对布局创建不同的 id。

然后在 java 文件中检查使用了哪个相对布局按钮。使用方法

步骤1)

RelativeLayout r1 =  RelativeLayout findviewbyId(R.id.rl1)
RelativeLayout r2 =  RelativeLayout findviewbyId(R.id.rl2)

第2步)

if button.getParent equals to R1 then ... 
else .....
于 2013-08-23T09:54:33.600 回答
0

只需尝试在任何按钮或 textView 中更改您的文本。可能您的视图正在切换,但因为两种布局的代码完全相同,您无法区分。

于 2013-08-23T10:14:13.020 回答