如何将按钮添加到磨损OS应用程序?

问题描述 投票:0回答:1

我将按钮添加到我的第一个Wear OS应用程序中。当我遵循一个模型我现有的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 button wear-os
1个回答
0
投票

仍然可以编译。而且我可以访问按钮中的项目,例如文本。但是,当我更改文本时,它不会出现在屏幕上。当我按下模拟器中的按钮时,它不会注册任何动作。

问题不是来自您的代码,而是来自Android Wear模拟器。您的磨损模拟器处于环境(低功耗)模式。单击仿真器窗口顶部的,以在交互式(全功率)和环境模式(低功率)之间切换。

enter image description here

如何在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());
    }

}

以下是上述活动的结果(注意:在仿真器窗口顶部单击以在交互模式和环境模式之间切换:]

enter image description here

编辑

为了避免在活动中实现View.OnClickListener,您可以像为setOnClickListener所做的那样在为OkButton调用bottomButton时传递View.OnClickListener的实例。

OkButton.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {   
                //do something when OkButton is clicked
            } 
        });
© www.soinside.com 2019 - 2024. All rights reserved.