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()
找到按钮)。