簡體   English   中英

如何將 Button 添加到我的 Wear OS 應用程序?

[英]How can I add a Button to my wear OS app?

我正在向我的第一個 Wear OS 應用程序添加一個 Button。 當我遵循現有 Android 應用程序的模型時,由於“WearableActivity”與“Activity”似乎存在差異。 我無法定義 OnClickListener。

在我的創建中是這樣的:

bottomButton = findViewById(R.id.bottomButton);
        setListener();

后來在主要活動來源是這個

void setListener()
    {
            bottomButton.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) // toggle between report and graph display
            {   if (showGraph)
                    {showReport=true; showGraph=false;bottomButton.setText("show Report");}
                else
                    {showReport=false;showGraph=true;bottomButton.setText("show Graph");}



            }  // end, onClick
        }); // end, setOnClickListener
    } // end, setListener()

在這兩種情況下,按鈕都是在 XML 中定義的,並按如下方式找到和使用

OkButton = (Button) findViewById(R.id.OkButton);
OkButton.setOnClickListener(this);

無論如何它都可以編譯。 我可以訪問按鈕中的項目,例如文本。 但是當我更改文本時,它不會出現在屏幕上。 當我按下模擬器中的按鈕時,它不會注冊任何操作。

問題不在於您的代碼,而在於 Android Wear 模擬器。 您的磨損模擬器處於環境(低功耗)模式。 單擊仿真器窗口頂部的 可在交互式(全功率)和環境模式(低功率)之間切換。

在此處輸入圖片說明

如何在wear os 應用程序中定義和使用按鈕。

與在移動端完成的方式相同。 下面是一個例子

public class MainActivity extends WearableActivity implements View.OnClickListener {
    Button clickMeButton;
    TextView textView;
    int count = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
        setAmbientEnabled();

        clickMeButton = findViewById(R.id.click_me_button);
        textView = findViewById(R.id.test_textview);
        clickMeButton.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        count++;
        textView.setText("I am clicked: "+count);
    }


    @Override
    public void onEnterAmbient(Bundle ambientDetails) {
        // Handle entering ambient mode
        super.onEnterAmbient(ambientDetails);
        Log.e("Hello", "I'm ambient");
    }

    @Override
    public void onExitAmbient() {
        // Handle exiting ambient mode
        super.onExitAmbient();
        Log.e("Hello", "exit ambient");
    }

    @Override
    public void onUpdateAmbient() {
        // Update the content
        super.onUpdateAmbient();
        Log.e("Hello", "update ambient: " + isAmbient());
    }

}

以下是上述活動的結果(注意:單擊模擬器窗口頂部可在交互模式和環境模式之間切換):

在此處輸入圖片說明

編輯

為避免在活動實施View.OnClickListener打電話時您可以通過View.OnClickListener的實例setOnClickListenerOkButton像你已經做了bottomButton

OkButton.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {   
                //do something when OkButton is clicked
            } 
        });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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