我在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);
}
}
答案 0 :(得分:1)
要设置标题,只需将setTitle(titleString);
添加到onCreate方法。
您已通过添加android:clickable="true"
使ClickButton可以点击
现在,您需要获取按钮并添加单击侦听器:
ImageButton iv = (ImageButton) findViewById(R.id.resourceID);
iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// code
}
});
答案 1 :(得分:1)
如果您要在View
中使用自定义ActionBar
,则需要使用其他方法添加自定义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
关闭的原因。