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

时间:2012-03-12 09:56:33

标签: android animation

当我们点击切换按钮时,我想交换两个按钮位置。我已经尝试了很多,但没有取得成功。所以,如果有人知道如何做到这一点,请建议我。 谢谢大家。

5 个答案:

答案 0 :(得分:2)

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

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;

            }
        });
    }


}

答案 1 :(得分:0)

ToggleButton自Android API级别以来在Android中可用。

以下链接提供了有关在Android中使用各种按钮的信息

http://android-pro.blogspot.in/2010/03/android-button-controls.html

我认为以上链接对您有所帮助。

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

答案 2 :(得分:0)

您可以执行以下操作:

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

例如:
你有两个标有“按钮1”和“按钮1”的按钮。 “按钮2”。
2.单击“按钮1” - >将按钮标签更改为“按钮1”至“按钮2”,将“按钮2”更改为“按钮1” 3.点击“按钮2”时类似。
4.在OnClick方法中,通过标签跟踪按钮单击事件(“按钮1”或“按钮2”)

答案 3 :(得分:0)

您可以尝试使用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>

现在我们有Activity将此布局放入:

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.main);

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

    private void switchButtons() {
        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;
    }
}

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

答案 4 :(得分:0)

交换edittext的示例

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);

        }
    });