2017-04-06 33 views
0

您好我是新的android和这里 我想在我的工具栏中有一个自定义背景的复选框 我的用例是:我想添加当前帖子(在我的活动)到工具栏 复选框收藏夹列表,我想使用明星(开/关)图标。如何在自定义背景的工具栏中添加一个复选框 - 安卓android,android,

我试过,但该复选框是空

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto"> 
<item android:id="@+id/shwo_menu_download_mp3" 
    android:title="@string/download_mp3" 
    app:showAsAction="never"/> 
<item android:id="@+id/show_menu_add_to_fav" 
    android:checked="true" 
    android:enabled="true" 
    app:showAsAction="always" 
    /> 
<item android:id="@+id/show_menu_setting" 
    android:title="@string/show_menu_setting" 
    app:showAsAction="never" /> 

和我的活动:

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_show_speech); 
    initCheckBox(); 
    ... 
} 

CheckBox checkBoxFav; 

private void initCheckBox() { 
    checkBoxFav = (CheckBox) findViewById(R.id.show_menu_add_to_fav); 

    checkBoxFav.setText("some Text"); 
} 
+0

[这](http://www.techrepublic.com/article/pro-tip-use-a-custom-layout-to-badge-androids-action-bar-menu-items /)显示了如何添加自定义菜单项并处理其点击。 –

回答

1

与工具栏,你可以做到这一点

setSupportActionBar(toolbar); 
View view= getLayoutInflater().inflate(R.layout.view_, null); 
Checkbox chbox = view.findViewById(..); 
//chbox.do what u want with it 
toolbar.addView(logo); 

视图布局包含ch eckbox并根据需要设计它

0

您必须执行以下步骤:
1.创建一个工具栏并将其添加到您的活动中。我不会解释这个问题,因为关于这个问题有很多教程。
2.在它创建具有一个复选框控件的菜单:

<?xml version="1.0" encoding="utf-8"?> 
<menu 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    > 
    <item 
     android:id="@+id/menu_star" 
     android:checkable="true" 
     app:actionViewClass="android.widget.CheckBox" 
     app:showAsAction="ifRoom" 
     android:title="@string/favorite" /> 

</menu> 
  • 添加组图标在被拉伸的文件夹。一个用于未选中状态的图标和一个用于已选状态的图标。

  • 创建一个资源文件,并将其命名为任何你想要的(在这个例子中,名字是star.xml),将其添加到绘制文件夹,并插入它下面的代码:

    <?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
        <item 
         android:state_checked="true" 
         android:drawable="@drawable/star_black" 
         /> 
        <item 
         android:state_selected="true" 
         android:drawable="@drawable/star_black" 
         /> 
        <item 
         android:state_checked="false" 
         android:drawable="@drawable/star_border_black" 
         /> 
        <item 
         android:drawable="@drawable/star_border_black" 
         /> 
    </selector> 
    
  • 创建onCreateOptionsMenu方法并插入以下代码。勾选或取消选中后,复选框的图标会自动更改。

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
        MenuInflater menuInflater = getMenuInflater(); 
        menuInflater.inflate(R.menu.menu,menu); 
        CheckBox checkBox = (CheckBox)menu.findItem(R.id.menu_star).getActionView(); 
        checkBox.setButtonDrawable(R.drawable.star);//set the icon to star.xml 
    
    
        checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
         @Override 
         public void onCheckedChanged(CompoundButton compoundButton, boolean b) { 
          //set the action of the checkbox 
        } 
        }); 
    
    
    
        return super.onCreateOptionsMenu(menu); 
    } 
    
  • 相关问题