圣诞快乐,祝大家节日快乐!
我正在尝试在默认标题栏左侧显示的图片图标上设置一个监听器,但到目前为止没有运气。
这是我的活动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!");
}
});
}
有什么建议吗?我希望看不到答案“这是不可能的”:)
答案 0 :(得分:4)
左侧图标似乎没有ID,但是对于经典标题栏,有一个ID可用:android.R.id.title
以下是使用此ID的示例活动。无论主题如何,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();
}
});
}
}
基本上,这样做,是找到标题栏的ID(android.R.id.title
),然后为其分配onClickListener
。
这将不与ActionBar
一起使用,只有经典的窗口标题栏。
答案 1 :(得分:1)
您应该使用ActionBar。使用ActionBarSherlock也可以将其用于低于3.0的Android版本。要使图标可单击,请参阅ActionBar API文档(请参阅下面的链接)。这很简单,你只需激活行为,然后它就像一个带有特殊item-id的菜单项。