Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中交换两个按钮的位置_Android_Animation - Fatal编程技术网

如何在android中交换两个按钮的位置

如何在android中交换两个按钮的位置,android,animation,Android,Animation,当我们点击切换按钮时,我想交换两个按钮的位置。我试了很多,但没有成功。所以如果有人知道怎么做,请建议我。 谢谢大家。从API级别1开始,Android中就提供了切换按钮 下面的链接提供了Android中各种按钮的使用信息 我认为上面的链接对你有帮助 如果没有,请提供快照,以便更清楚地回答问题。您可以执行以下操作: 单击 1.动态更改按钮的标签。 2.按按钮标签跟踪按钮单击事件。 例如: 1.有两个按钮标记为“按钮1”和“按钮2”。 2.单击“按钮1”->将按钮标签更改为“按钮1”为“按钮2”,

当我们点击切换按钮时,我想交换两个按钮的位置。我试了很多,但没有成功。所以如果有人知道怎么做,请建议我。
谢谢大家。

从API级别1开始,Android中就提供了切换按钮

下面的链接提供了Android中各种按钮的使用信息

我认为上面的链接对你有帮助


如果没有,请提供快照,以便更清楚地回答问题。

您可以执行以下操作:

单击
1.动态更改按钮的标签。
2.按按钮标签跟踪按钮单击事件。

例如:
1.有两个按钮标记为“按钮1”和“按钮2”。
2.单击“按钮1”->将按钮标签更改为“按钮1”为“按钮2”,将“按钮2”更改为“按钮1”。
3.单击“按钮2”的情况类似。

4.在OnClick方法中,通过标签(“按钮1”或“按钮2”)跟踪按钮单击事件

您可以使用
View.setVisibility()
尝试一种隐蔽的解决方法。从res/layout/main.xml开始:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:orientation="vertical" >

        <Button
            android:id="@+id/switcher"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Switch"
            android:onClick="switchButtons" />
        <Button
            android:id="@+id/buttonA1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button A" />
        <Button
            android:id="@+id/buttonB1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button B" />
        <Button
            android:id="@+id/buttonB2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button B"
            android:visibility="gone" />
        <Button
            android:id="@+id/buttonA2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button A"
            android:visibility="gone" />

</LinearLayout>

剩下的就是为这四个按钮分配
onClick()
方法。

//这是交换按钮所需的代码

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class Foo extends Activity {

    Button switcher;
    Button A1;
    Button A2;
    Button B1;
    Button B2;
    boolean buttons1AreVisible = true;

    protected void onCreate(Bundle allthethings) {
        super.onCreate(allthethings);
        setContentView(R.layout.activity_main);

        switcher = (Button) findViewById(R.id.switcher);
        A1 = (Button) findViewById(R.id.buttonA1);
        A2 = (Button) findViewById(R.id.buttonA2);
        B1 = (Button) findViewById(R.id.buttonB1);
        B2 = (Button) findViewById(R.id.buttonB2);


        switcher.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                if (buttons1AreVisible) {
                    A1.setVisibility(View.GONE);
                    B1.setVisibility(View.GONE);
                    B2.setVisibility(View.VISIBLE);
                    A2.setVisibility(View.VISIBLE);
                } else {
                    A1.setVisibility(View.VISIBLE);
                    B1.setVisibility(View.VISIBLE);
                    B2.setVisibility(View.GONE);
                    A2.setVisibility(View.GONE);
                }

                buttons1AreVisible = !buttons1AreVisible;

            }
        });
    }


}

交换编辑文本的示例

button2.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            EditText button3;
            EditText button4;
            button3 = (EditText) findViewById(R.id.button3);
            button4 = (EditText) findViewById(R.id.button4);
            int top3 = button3.getTop();
            int bot3 = button3.getBottom();
            int left3 = button3.getLeft();
            int right3 = button3.getRight();

            int top4 = button4.getTop();
            int bot4 = button4.getBottom();
            int left4 = button4.getLeft();
            int right4 = button4.getRight();

            button4.setTop(top3);
            button4.setBottom(bot3);
            button4.setLeft(left3);
            button4.setRight(right3);

            button3.setTop(top4);
            button3.setBottom(bot4);
            button3.setLeft(left4);
            button3.setRight(right4);

        }
    });

我用动画来交换它,我的代码刚刚回到相同的位置谢谢Lalit,但我的问题是如何交换两个按钮的位置。谢谢gobernador。但我不想这样使用。实际上我们必须交换按钮的位置。我真的不明白,根据你提供的信息,为什么这不起作用,但也许这个问题会有帮助,但我们想用动画来交换按钮的位置。
button2.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            EditText button3;
            EditText button4;
            button3 = (EditText) findViewById(R.id.button3);
            button4 = (EditText) findViewById(R.id.button4);
            int top3 = button3.getTop();
            int bot3 = button3.getBottom();
            int left3 = button3.getLeft();
            int right3 = button3.getRight();

            int top4 = button4.getTop();
            int bot4 = button4.getBottom();
            int left4 = button4.getLeft();
            int right4 = button4.getRight();

            button4.setTop(top3);
            button4.setBottom(bot3);
            button4.setLeft(left3);
            button4.setRight(right3);

            button3.setTop(top4);
            button3.setBottom(bot4);
            button3.setLeft(left4);
            button3.setRight(right4);

        }
    });