2015-09-26 233 views
1

我用下面的代码尝试,但没有复选框出现,只有文字:如何将CheckBox添加到工具栏?

<item 
    android:id="@+id/menuShowDue" 
    android:actionViewClass="android.widget.CheckBox" 
    android:title="@string/string_due" 
    android:checkable="true" 
    app:showAsAction="ifRoom" /> 

是没可能把它通过菜单中添加?我应该做点别的吗?

我使用android.support.v7.widget.Toolbar作为工具栏。

+1

尝试将android:actionViewClass更改为app:actionViewClass。 – Sameer

+0

@Sameer不错,它显示'CheckBox',但没有文字.. :) – SagiLow

+0

你为什么不使用:app:showAsAction =“always”;可能它没有足够的空间和文本消失 – Lazai

回答

5

请按照如下所示更改为app:actionViewClassapp:showAsAction,它应该适合您。

<item 
    android:id="@+id/menuShowDue" 
    android:checkable="true" 
    android:title="@string/string_due" 
    app:actionViewClass="android.widget.CheckBox" 
    app:showAsAction="ifRoom|withText" /> 

还对onCreateOptionsMenu()进行相关更改。示例文本粘贴在下面;

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 

    CheckBox checkBox = (CheckBox) menu.findItem(R.id.menuShowDue).getActionView(); 
    checkBox.setText("Sample Text"); 
    return true; 
} 
+0

我希望它是行动,我不想它在菜单本身,但在工具栏上 – SagiLow

+0

请检查它是否为您服务目的。我已验证它显示复选框的文字。 – Sameer

+0

对于我已经投入的努力也至少投票。 – Sameer