簡體   English   中英

如何在Android中更改按鈕onClick的視圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM