如何在android中更改onClick按钮的视图

时间:2011-04-20 12:04:05

标签: android button view onclick

在我的应用程序中,我试图使用计时器计算操作。为了控制这些操作,我使用四个按钮作为开始,停止,暂停和恢复。

但我想只显示2个按钮。一开始我只有两个按钮Start和Pause。 单击开始按钮时,计时器开始启动,并立即在“开始”按钮的位置显示“停止”按钮。

我想对其他停止和暂停按钮执行相同的操作。怎么做请帮帮我......

4 个答案:

答案 0 :(得分:2)

onClick(View v)中,v是被点击的按钮。你可以把它像:

Button b = (Button) v;

因此您可以使用setText()更改其文本,并设置另一个侦听器。您可以将备用侦听器声明为活动的成员一次,并设置它们而不必每次都重新声明它们。

答案 1 :(得分:2)

使用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 :(得分:1)

您的应用程序需要维护状态,例如“空闲/停止”,“正在进行”,“已暂停”等。如果要隐藏按钮,可以使用View.setVisibility,并动态显示和隐藏状态改变时的按钮(按下其他按钮时)。您需要适当地设置布局,以便按钮在动态显示/隐藏时显示良好

或者,您可以动态更改按钮的文本及其关联的单击侦听器。这种方法并不是很理想,因为您可能会遇到需要为所有不同状态设置不同数量的按钮的情况,并且您将变量行为与单个控件关联起来。此外,您必须管理点击侦听器,动态添加和删除它们。

答案 3 :(得分:0)

这是一个简单的实现

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" 
 />