[英]how to change the view of a button onClick in android
在我的應用中,我嘗試使用計時器來計算操作。 為了控制這些操作,我使用四個按鈕作為開始,停止,暫停和繼續。
但我只想顯示2個按鈕。 一開始我只有兩個按鈕“開始”和“暫停”。 單擊開始按鈕后,計時器開始計時,並立即在開始按鈕的位置顯示停止按鈕。
我想對其他停止和暫停按鈕執行相同的操作。 怎么做請幫幫我......
在您的onClick(View v)
, v
是被單擊的按鈕。 您可以像這樣進行投射:
Button b = (Button) v;
因此您可以使用setText()
更改其文本,並設置另一個偵聽器。 您可以一次將替代偵聽器聲明為活動的成員,並設置它們而無需每次都重新聲明它們。
使用ToggleButton對您來說是一個很好的解決方案。 做類似的事情:
ToggleButton first = new ToggleButton(getContext());
ToggleButton second = new ToggleButton(getContext());
first.setTextOff("start");
first.setTextOn("stop");
second.setTextOff("pause");
second.setTextOn("resume");
並使用setOnCheckedChangeListener()來實現您的操作。
您的應用程序需要維護狀態,例如“空閑/停止”,“進行中”,“已暫停”等。如果要隱藏按鈕,則可以使用View.setVisibility ,並在狀態時動態顯示和隱藏按鈕更改(按其他按鈕時)。 您需要適當地設置布局,以使按鈕在動態顯示/隱藏時能很好地顯示
或者,您可以動態更改按鈕的文本及其關聯的單擊偵聽器。 此方法不是很理想,因為您可能會遇到以下情況:對於所有不同的狀態都需要不同數量的按鈕,並且將變量行為與單個控件相關聯。 另外,您必須管理點擊偵聽器,並動態添加和刪除它們。
這是一個簡單的實現
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"
/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.