android - 将 Switch 小部件添加到 ActionBar 并响应更改事件

标签 android android-actionbar togglebutton

请问如何在 ActionBar 中添加 Switch widget 并处理点击事件或切换更改事件。

现在我可以在 ActionBar 中给 Switch 充气,但无法响应更改事件。我在 main.xml 中添加了以下内容。

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.MainActivity" >

    <item
        android:id="@+id/toggleservice"
        android:actionViewClass="android.widget.Switch"
        android:showAsAction="ifRoom"
        android:title="@string/toggle_service"/>

</menu>

我想在用户点击开关并更改其状态时启动一项服务。非常感谢任何帮助。

最佳答案

您需要调用MenuItem.getActionView , 这是一个例子:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate your Menu
    getMenuInflater().inflate(R.menu.your_menu, menu);

    // Get the action view used in your toggleservice item
    final MenuItem toggleservice = menu.findItem(R.id.toggleservice);
    final Switch actionView = (Switch) toggleservice.getActionView();
    actionView.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            // Start or stop your Service
        }
    });
    return super.onCreateOptionsMenu(menu);
}

关于android - 将 Switch 小部件添加到 ActionBar 并响应更改事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22918812/

相关文章:

iphone - 按下时切换 UIButton 状态,就像一个开关

Android Togglebuttons 组织成金字塔?

WPF弹出隐藏问题

android - 我应该使用 StringRequest 还是 JsonObjectRequest

android - Android 图标大小应遵循哪个 Google 文档?

android - 在一个 Activity 中创建多个上下文菜单

android - 如何在 ActionMode 中禁用操作栏后退按钮

android - 如何更改 Android 中的汉堡包图标(NavigationDrawer)

java - 如何创建覆盖窗口以显示 Android 10 上的所有应用程序

javascript - 在 Windows/iOS/Android 等上移植 Javascript 应用程序