Android 拿着按钮的基本活动

Android 拿着按钮的基本活动,android,android-activity,Android,Android Activity,在我的应用程序中,我想在一个独特的位置添加一个按钮,在所有活动中执行相同的功能,因此,我不想在所有活动中添加相同的代码,而是想创建一个基本活动,就是这样 mport android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageButton; import android.w

在我的应用程序中,我想在一个独特的位置添加一个按钮,在所有活动中执行相同的功能,因此,我不想在所有活动中添加相同的代码,而是想创建一个基本活动,就是这样

mport android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.Toast;
 public abstract class DefaultActivity extends Activity{

ImageButton b;
@Override
public void onCreate(Bundle bundle)
{
    super.onCreate(bundle);
    setContentView(R.layout.default_activity);
    b = (ImageButton)findViewById(R.id.imageButton1);
    b.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Toast.makeText(getApplicationContext(), "ana fel base activity", Toast.LENGTH_LONG).show();
        }
    });
}
}

但是按钮没有出现在其他活动中,尽管我让其他活动扩展了DefaultActivity。那么,有没有办法实现这一点?非常感谢


附言:我不想使用actionBar。

如果您的其他活动使用其他布局调用
setContentView(…)
,则将显示这些布局。如果这些布局没有
ImageButton
,那么屏幕上就没有
ImageButton
(在
活动及其超类实现中调用
setContentView()
,布局就不会“嵌套”)。一种解决方案是在其他布局中使用
标记,并使用另一个布局文件,仅使用ImageButton,如下所示:

res/layout/image_button.xml

<ImageButton xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ...
/>

res/layout/activity\u main

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <!-- more views ... -->

    <include android:layout="@layout/image_button" />
</LinearLayout>


您是否在所有布局中都有ImageButton?是的,这是我的问题,我是否可以在基本活动的布局中定义一个按钮,这样它就会出现在扩展基本活动的所有活动中,或者我应该手动将此ImageButton添加到所有版面,并在所有活动中复制相同的代码片段以执行相同的功能?您只需要在所有版面中声明ImageButton。然后onclick侦听器将工作。ImageButton的id对于所有版面都应该是@id,除了默认的@U活动版面,默认的@U活动版面应该是@idI,但不幸的是,onclick不起作用。您可以发布任何一个扩展了onclick不起作用的Defautlt活动的活动吗。onCreate足够了如果我使用
标记,我必须在每个活动中放置
onclickListener
的实现,不是吗?您可能会将其放置在BaseActivity中。但是,您需要确保无论什么代码设置,按钮的onClickListener都将始终在
setContentView()
调用之后运行(以便
findViewById()
找到按钮)。