あなたはこのようなaction_bar.xml
レイアウトしていた場合:
package com.your.package.ui.widget;
public class ActionBar extends LinearLayout implements OnClickListener {
public ActionBar(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ActionBar(Context context) {
super(context);
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
findViewById(R.id.actionBarOpenButton).setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.actionBarOpenButton:
// Do something
break;
default:
break;
}
}
}
あなたが希望:あなたはこのように見えたActionBar.java
というパッケージcom.your.package.ui.widget
でクラスを持っているでしょう
<?xml version="1.0" encoding="utf-8"?>
<com.your.package.ui.widget.ActionBar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/actionBar"
android:layout_width="fill_parent"
android:layout_height="58dip"
android:background="@drawable/action_bar_background" >
<ImageButton
android:id="@+id/actionBarOpenButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/transparent"
android:contentDescription="open button"
android:src="@drawable/action_bar_open_button" />
</com.your.package.ui.widget.ActionBar>
を次のように `activity_main.xml 'という別のレイアウトに含める:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<include layout="@layout/action_bar" />
<!-- Rest of your layout -->
</LinearLayout>
これを任意のActvityに含めることができ、カスタムウィジェットはどこでも同じonClickイベントを実行します。
あなたの問題についてはっきりさせてください。 – Goofy
アクションバーのXMLコードを投稿してください – Blundell