繁体   English   中英

如何使ImageButton可点击并隐藏Android中Actionbar中的主页徽标按钮?

[英]How to make an ImageButton clickable and hide the home logo Button in Actionbar in android?

我在Actionbar上添加了一个ImageButton。 我不知道如何让它可点击。 其次,我想隐藏Actionbar中的主页徽标按钮/图像。 最后我想在Action Bar上显示一个标题。 谁能建议我一步一步做什么? 我的代码如下:

actionbars.xml

<ImageView
android:id="@+id/actionBarLogo"
android:contentDescription="@string/app_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:duplicateParentState="false"
android:focusable="false"
android:longClickable="false"
android:layout_marginLeft="225dp"

android:src="@drawable/settings" />

MainActivity.java

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final ActionBar actionBar = getActionBar();
    actionBar.setBackgroundDrawable(getResources().getDrawable(R.color.blue));
    actionBar.setCustomView(R.layout.actionbars);
    actionBar.setDisplayShowTitleEnabled(true);
    actionBar.setDisplayShowCustomEnabled(true);
    actionBar.setDisplayUseLogoEnabled(true);
  }
 public boolean onMenuItemSelected(int featureId, MenuItem item) {
    // TODO Auto-generated method stub
 switch (item.getItemId()) {
   ImageButton b=(ImageButton)findViewById(R.id.actionBarLogo);
b.setOnClickListener(new OnClickListener() {

    //@Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        Intent i=new Intent(MainActivity.this,Lists.class);
        startActivity(i);   
    }
});
        return super.onOptionsItemSelected(item);
 }
}

要设置标题,只需添加setTitle(titleString); 到onCreate方法。

你已经通过添加android:clickable="true"实现了ImageButton的可点击性android:clickable="true"现在你需要获得按钮并添加一个点击监听器:

ImageButton iv = (ImageButton) findViewById(R.id.resourceID);
iv.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                     // code
                }
            });

如果您要在ActionBar使用自定义View ,则需要使用其他方法添加它以使ImageView可单击。 这是一个这样做的例子,同时隐藏了家庭的可供性。

    // Initialize your custom layout
    final View v = getLayoutInflater().inflate(R.layout.actionbars, null);
    final ImageView iv = (ImageView) v.findViewById(R.id.actionBarLogo);
    iv.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // Called when your View is clicked
        }
    });

    // Add the custom View to your ActionBar
    final ActionBar actionBar = getActionBar();
    actionBar.setCustomView(v);
    actionBar.setDisplayShowCustomEnabled(true);
    // Remove the "up" affordance
    actionBar.setDisplayShowHomeEnabled(false);

您的ImageView不是MenuItem ,这就是您的应用程序在Activity.onOptionsItemSelected关闭的原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM