将click监听器添加到titlebar图像

pau*_*ith 6 android titlebar android-activity

祝大家圣诞快乐!

我正在尝试在默认标题栏左侧显示的图像图标上设置一个监听器,但到目前为止没有任何运气.

这是我的活动onCreate:

@Override public void onCreate(Bundle savedInstanceState) {
   requestWindowFeature(Window.FEATURE_LEFT_ICON);
   super.onCreate(savedInstanceState);
   findViewById(Window.FEATURE_LEFT_ICON).setOnClickListener(new OnClickListener() {
       @Override public void onClick(View v) {
           System.out.println("It works!");
       }
   });
}
Run Code Online (Sandbox Code Playgroud)

有什么建议?我希望看不到答案"这是不可能的":)

A--*_*--C 4

左侧图标似乎没有 id,但是对于经典标题栏,有一个可用的 id:android.R.id.title下面是使用此 id 的示例 Activity。无论主题如何,都requestWindowFeature(Window.FEATURE_LEFT_ICON);应该强制使用经典标题栏。

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_LEFT_ICON);
    setContentView(R.layout.activity_main);
    getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON,R.drawable.ic_launcher);
    View v = findViewById (android.R.id.title);
    v.setClickable(true);
    v.setOnClickListener(new OnClickListener() {
        @Override public void onClick(View v) {
            Toast.makeText(MainActivity.this, "Works!", Toast.LENGTH_SHORT).show();
        }
    });
}
}
Run Code Online (Sandbox Code Playgroud)

基本上,它的作用是找到标题栏 ( ) 的 id,然后为其android.R.id.title分配 an 。onClickListener

这不适用于s ActionBar,仅适用于经典窗口标题栏。