抽象类-Android的Java问题如何实现这样的需求

问题描述

Android的Java问题如何实现这样的需求

1,为了代码比较优雅,所以我写了一个BaseActivity如下:
public abstract class BaseActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
}

/**
 * 初始化视图控件
 */
public abstract void initView();

/**
 * 设置数据
 */
public abstract void setDate();

}

2.我发现我们在实现这个抽象类时,要在 onCreate(Bundle savedInstanceState){
}中写initView();而且都是重复的,有没有办法不写initView,也可以初始化initView里的设置,让继承BaseActivity不用在onCreate()中initView()

解决方案

BaseActivity中覆盖setContentView()方法,再里面调用initView()
@Override
public void setContentView(int layoutResID)
{
// TODO Auto-generated method stub
super.setContentView(layoutResID);
initViews();
}

解决方案二:

抽象类这么写

 public abstract class BaseActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
        initView();//这里加上,子类就不用写了
}

/**
 * 初始化视图控件
 */
public abstract void initView();

/**
 * 设置数据
 */
public abstract void setDate();
}

解决方案三:

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        initView();
    }

    public abstract void initView();

    public abstract void setData();

解决方案四:

把initview方法写进抽象类的oncreate里面

解决方案五:

你把initView方法写在onCreate里面就OK 了。~~~~

解决方案六:

楼上给的意见是正解,我就是这么做的,再BaseActivity的onCreate方法中调用写的抽象类,在继承了BaseActivity之后,就不用再重新调用
该方法,只需重写其内容就可以了。

解决方案七:

说实话,我觉得基类还是控制有哪些方法,和把基本,是基本调用做了,这些逻辑还是放在子类好,因为时间一长或者别人来看,就容易把你的基类忽略,导致不清楚整个逻辑。这种方法我个人意见少用,我就遇到过一些要在initview前做的操作。

解决方案八:

initView()写在oncreate里面是不行的,因为initView的操作必须要写在setcontentView之后,不然后果很严重

解决方案九:

initView()写在oncreate里面是不行的,因为initView的操作必须要写在setcontentView之后,不然后果很严重

解决方案十:

initView()写在oncreate里面是不行的,因为initView的操作必须要写在setcontentView之后,不然后果很严重

时间: 2024-12-31 20:35:11

抽象类-Android的Java问题如何实现这样的需求的相关文章

android-自学Android 没有java基础

问题描述 自学Android 没有java基础 没有java基础 学过C C++ C# 现在想自学Android 不知道看什么书和什么视频合适 网上推荐的太多太多了 分不清了 来个大神指点一下这开始的一步应该怎么走 谢谢了! 解决方案 先学java基础,网上很多java基础的书籍.java学的差不多了,就可以开始学习android了,推荐一本书:疯狂android讲义. 从简单的开始讲的.别只看,要多敲代码. 解决方案二: 入门随便找个视频看看,系统学习还是要看书 有个叫老罗的 CSDN 的博客

用Go语言写Android应用 (2) - 从Android的Java调用Go代码

用Go语言写Android应用 (2) - 从Android的Java调用Go代码 上一篇我们讲到,Go在Android中的作用,就相当于NDK中的C/C++.上节我们学习了参照NDK的方式用纯Go语言来写应用. 但是,也正如在Android中,C/C++主要是通过JNI的方式被Java代码调用,本节我们就学习如何使用Java代码来调用Go代码. Java调Go的JNI例子 Java部分 我们首先来看这个简单得不能再简单的Java部分的代码,只有一个TextView,然后调用Go写的Hello.

android使用java进行控制开关

问题描述 android使用java进行控制开关 有没有方法能实现在java源控制开关?我不想在通过.xml控制. 根据一个保存的参数进行on/off切换. 谢谢 解决方案 看一下开关切换的说明: Switch http://developer.android.com/reference/android/widget/Switch.html Switch switch = (Switch) findViewById(switchId);switch.setChecked(true) // set

Android 和 Java 内存泄露检测工具——LeakCanary

LeakCanary Android 和 Java 内存泄露检测. "A small leak will sink a great ship." - Benjamin Franklin 千里之堤, 毁于蚁穴. -- <韩非子·喻老> demo 一个非常简单的 LeakCanary demo: https://github.com/liaohuqiu/leakcanary-demo 开始使用 在 build.gradle 中加入引用,不同的编译使用不同的引用: depende

彻底理解引用在 Android 和 Java 中的工作原理

本文讲的是彻底理解引用在 Android 和 Java 中的工作原理, 几周前,我很荣幸地参加了在波兰举行的 Mobiconf ,移动开发者参加的最好的研讨会之一.我的朋友兼同事 Jorge Barroso 做了个名为"最好(良好)的做法"的演说 ,这让我在听后很有感触: 对于一个 Android 开发者,如果你不使用 WeakReferences,这是有问题的. 举个恰当的例子,几个月前,我发布了我的最后一本书 "Android High Performance"

android 开发 java写的 tcp 通信库,注册选择器时异常!跪求java高手指点!!!

问题描述 android 开发 java写的 tcp 通信库,注册选择器时异常!跪求java高手指点!!! public void initialize() throws IOException { boolean done = false; try { Log.e(TAG,"SocketChannel.open:IP:["+hostIp+"Port:"+hostListenningPort+"]."); // 打开监听信道并设置为非阻塞模式 s

android下java可以接收普通短信吗?

问题描述 android下java可以接收普通短信吗?不会象J2ME一样要端口号吧? 解决方案 解决方案二:可以接收,不需要端口号,使用SmsManager即可完成

求大神帮忙解决 Android项目java空指针异常问题 真的很急 - -

问题描述 求大神帮忙解决 Android项目java空指针异常问题 真的很急 - - 新手小白参考网上教程学习的socket使用,代码几乎雷同老师写的就可以运行我的就会出问题,connect()方法正确可用,但是send()方法不能用,会提示如图空指针异常,但是我真的找不到是哪里的问题,求大神指点.困扰两天了 茶不思饭不想.(由于提问字数问题导包部分代码没有粘过来) 我用Broadcast在一个activity中监听到操作后广播消息过来然后触发java类里面的方法,触发到connect()就可以

【IOS-COCOS2D-X 游戏开发之十三】详细讲解在XCODE中利用预编译并通过JNI调用ANDROID的JAVA层代码(COCOS2DX里访问调用ANDROID函数)!

本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/android-game/725.html 很多看过之前Himi的[iOS-cocos2d-X 游戏开发之七]整合Cocos2dX的Android项目到Xcode项目中,Xcode编写&编译代码,Android导入打包运行即可! 博文的童鞋都在问我如何在Xcode中能调用Java的函数,比如在Android端需要加入广告.支付.等第三方平台或者