2015-09-26 174 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