我正在尝试使在 Actionbarsherlock 的自定义布局中定义的 ImageView 可单击。我的 Activity 首先设置布局:
setContentView(R.layout.myLayout);
actionbar_layout 在同一个 Activity 中设置,如下所示:
View cView = getLayoutInflater().inflate(R.layout.actionbar_layout,
null);
actionBar.setCustomView(cView);
实际的actionbar_layout看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:orientation="horizontal" >
<ImageView
android:id="@+id/actionBarLogo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:paddingBottom="50dp"
android:paddingLeft="10dp"
android:paddingRight="50dp"
android:paddingTop="50dp"
android:scaleType="centerCrop"
android:src="@drawable/logo" />
</LinearLayout>
添加此内容:
actionBarLogo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//code
}
});
导致此行出现空指针异常:
actionBarLogo.setOnClickListener(new View.OnClickListener()
自定义布局工作正常,我只需要 ImageView 可点击。 任何想法如何解决这一问题? 我的 Activity 如何获取对 actionbar_layout.xml 中定义的 actionBarLogo id 的引用?
最佳答案
尝试这样的事情:
//your code
View cView = getLayoutInflater().inflate(R.layout.actionbar_layout,
null);
actionBar.setCustomView(cView);
ImageView actionBarLogo = (ImageView) cView.findViewById(R.id.actionBarLogo);
actionBarLogo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//code
}
});
应该可以。
关于android - Actionbarsherlock 自定义布局可点击 imageview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14629540/