在我的应用程序中,我试图使用计时器计算操作。为了控制这些操作,我使用四个按钮作为开始,停止,暂停和恢复。
但我想只显示2个按钮。一开始我只有两个按钮Start和Pause。 单击开始按钮时,计时器开始启动,并立即在“开始”按钮的位置显示“停止”按钮。
我想对其他停止和暂停按钮执行相同的操作。怎么做请帮帮我......
答案 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"
/>