Как поменять положение двух кнопок в андроиде - PullRequest
2 голосов
/ 12 марта 2012

Я хочу поменять местами две кнопки, когда мы нажимаем на кнопку переключения.Я много пробовал, но безуспешно.Так что, если кто-нибудь знает, как это сделать, пожалуйста, предложите мне.Спасибо всем.

Ответы [ 5 ]

2 голосов
/ 14 декабря 2012

// Это код, который вам нужен для замены кнопок.

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;

            }
        });
    }


}
0 голосов
/ 03 декабря 2014

Пример обмена текстом редактирования

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

        }
    });
0 голосов
/ 12 марта 2012

Вы можете сделать следующее:

При нажатии
1. Измените метку кнопки динамически.
2. Отслеживайте событие нажатия кнопки по метке кнопки.

Например:
1. У вас есть две кнопки, помеченные как «Кнопка 1» и «Кнопка 2».
2. При нажатии кнопки «1» -> измените метку кнопки с «Кнопка 1» на «Кнопка 2» и «Кнопка 2» на «Кнопка 1».
3. Аналогично в случае нажатия «Кнопка 2».
4. В методе OnClick отследите событие нажатия кнопки через метку («Кнопка 1» или «Кнопка 2»)

0 голосов
/ 13 марта 2012

Вы можете попробовать хитрый обходной путь, используя 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() методы четырем кнопкам.

0 голосов
/ 12 марта 2012

ToggleButton доступен в Android начиная с уровня API 1.

Ниже ссылка предоставляет информацию об использовании различных кнопок в Android

http://android -pro.blogspot.in / 2010/03 / андроид-кнопочный controls.html

Я думаю, что приведенная выше ссылка полезна для вас.

Если нет, предоставьте снимки, чтобы получить больше ясности по этому вопросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...