как изменить вид кнопки на клик в андроиде - PullRequest
0 голосов
/ 20 апреля 2011

В моем приложении я пытаюсь рассчитать операцию, используя таймер.Для управления этими операциями я использую четыре кнопки: Пуск, Стоп, Пауза и Возобновление.

Но я хочу показать только 2 кнопки.В начале у меня есть только две кнопки Start и Pause.Когда нажимается кнопка запуска, запускается таймер, и сразу же вместо кнопки «Пуск» я хочу показать кнопку «Стоп».

Я хочу сделать то же самое для других кнопок «Стоп» и «Пауза».Как это сделать, пожалуйста, помогите мне ......

Ответы [ 4 ]

2 голосов
/ 20 апреля 2011

Использование ToggleButton - хорошее решение для вас.Сделайте что-то вроде:

ToggleButton first = new ToggleButton(getContext());
    ToggleButton second = new ToggleButton(getContext());
    first.setTextOff("start");
    first.setTextOn("stop");
    second.setTextOff("pause");
    second.setTextOn("resume");

и используйте setOnCheckedChangeListener () для реализации ваших действий.

2 голосов
/ 20 апреля 2011

В вашем onClick(View v), v - кнопка, по которой нажимают.Вы можете разыграть его следующим образом:

Button b = (Button) v;

, чтобы изменить его текст с помощью setText() и установить другого слушателя.Вы можете объявить альтернативных слушателей один раз как участников действия и установить их без повторного объявления их каждый раз.

1 голос
/ 20 апреля 2011

Ваше приложение должно поддерживать состояния, такие как «Idle / Stopped», «In Progress», «Paused» и т. Д. Если вы хотите скрыть кнопки, вы можете использовать View.setVisibility и динамически отображать и скрывать кнопки при изменении вашего состояния (при нажатии других кнопок). Вам необходимо правильно настроить макет, чтобы кнопки отображались правильно, так как они отображаются / скрываются динамически

Или вы можете динамически изменять текст кнопок и связанных с ними прослушивателей щелчков. Этот метод не очень идеален, потому что вы можете работать в тех случаях, когда вам нужно разное количество кнопок для всех ваших различных состояний, а также вы связываете поведение переменной с одним элементом управления. Кроме того, вы должны управлять прослушивателями кликов, динамически добавлять и удалять их.

0 голосов
/ 20 апреля 2011

вот простая реализация

public class Demo extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    final Button button=(Button)findViewById(R.id.button);

    button.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            button.setText("stop");
        }
    });
    }
}

В main.xml есть виджет Button, подобный этому,

<Button android:id="@+id/button"
android:text="start"
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
 />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...