Articles of inheritance

多个超类和代码重用

这个问题与Android有关,因为我的需求存在于该域中,但问题仍然适用于整个Java; 我将在这里使用一些Android术语,如Activity , FragmentActivity , ListActivity等… 我需要实现一个抽象基类,其中包含必须在整个应用程序中使用的function,更具体地说,每个Activity必须使用此function,但我希望它由基类自动处理。 我的问题是我在应用程序中有许多不同types的活动,如Activity , FragmentActivity和ListActivity ,所有这些Activity都扩展了Activity (当然减去Activity )。 由于基类中的代码对于Activity每个实现都是完全相同的,有没有办法避免代码重复并需要为每种types的Activity创建基类? 我想避免的是: public abstract class BaseActivity extends Activity { public void onCreate(Bundle savedBundle) { // code goes here, will be the exact same for all these base classes } } public abstract class BaseFragmentActivity extends FragmentActivity { public void onCreate(Bundle savedBundle) { […]

Android:创建父布局并对其进行扩展,以便在应用程序的所有活动中保持相同的外观

我正在写一个应用程序,其中我有多个屏幕,我想坚持某个主题。 例如:所有屏幕应该具有相同的背景,所有屏幕顶部应该有一个条形图,具有相同的动作集(不一定取决于当前显示的活动),并且所有屏幕应该共享相同的字体。 有没有办法在android中创建一个所有其他布局扩展的父布局,因此如果我需要更改一些元素(比如背景颜色),我不必在每个单独的屏幕上进行,而只是在父屏幕上。 我想我要问的是,android中有一种布局inheritance吗? 谢谢,e。

如何在Android-Scala应用程序中扩展ImageView?

我通过关键字在谷歌尝试了许多解决方案:多个构造函数,scala,inheritance,子类。 似乎没有人适合这种场合。 ImageView有三个构造函数: ImageView(context) ImageView(context,attribute set) ImageView(context,attribute set, style) 在scala中,您只能扩展其中一个。 使用更完整的构造函数( ImageView(context,attribute set, style) )和传递默认值的解决方案也不起作用,因为构造函数ImageView(context)执行的操作与其他两个构造函数完全不同。 使用特征或伴随对象的一些解决方案似乎不起作用,因为CustomView必须是一个类! 我的意思是我不是唯一一个使用这个类的人(因此我可以按照我想要的任何方式编写scala代码)还有使用这个类的android-sdk,是的,它必须是一个类。 target是一个扩展ImageView的CustomView,所有这些工作: new CustomView(context) new CustomView(context,attribute set) new CustomView(context,attribute set, style) 如果您需要进一步澄清这个棘手的事情,请告诉我!

扩展Android View类以添加一个drophadow

我想扩展LinearLayout以便在绘制布局时在其下方添加一个投影。 我玩过onDraw方法,但我有点迷失。 任何有关这个甚至图书馆建议的帮助将不胜感激! 这是我想要实现的投影视图的示例。 我不相信我可以在这里使用九个补丁,因为我需要视图的内容在白框内。 这意味着我需要知道边界与PNG末端之间的距离。 但是我相信不同的屏幕密度意味着这个距离将始终是相同的PX但不是相同的DP。 所以要清楚我需要一种方法来扩展View类,以便在将它添加到布局时在其下绘制阴影。 请不要使用XML或9Patch解决方案。 谢谢 插口

如何扩展实现Parcelable接口的android类?

首先,我检查了这个答案 。 我想要做的是扩展Location类,调用它的LocationPlus ,它有一些成员variables。 我想要实现的function是将LocationPlus类的对象从一个活动传递到另一个活动。 这是我的CREATOR public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { @Override public LocationPlus createFromParcel(Parcel source) { return new LocationPlus(source); } @Override public LocationPlus[] newArray(int size) { return new LocationPlus[size]; } }; 我面临的问题是这个错误 Implicit super constructor Location() is undefined. Must explicitly invoke another constructor 在尝试编写构造函数时 public LocationPlus(Parcel in) { 有评论的人要求我发布LocationPlus类,所以在这里 public […]

API接口不得扩展其他接口Retrofit 2

我有使用Retrofit 2 beta 2的下一个问题: java.lang.IllegalArgumentException: API interfaces must not extend other interfaces. 这是因为我有一个用于Retrofit API的接口,如下所示: public interface RetrofitBaseAPI { @POST Call login(@Url String url, @Body LoginReq loginReq); @POST Call logout(@Url String url, @Header(“Cookie”) String sid); } 例如,其中一个就是这个: public interface RetrofitWiserLinkAPI extends RetrofitBaseAPI { @GET(“/rs/DeviceIdentification”) Call getDeviceIdentification(@Header(“Cookie”) String sid); } 然后,我有三个其他接口,其中三个接口从这个RetrofitBaseAPI接口扩展。 当我尝试使用给定的接口调用retrofit.create(Class类)时,我总是收到此错误。 据我所知,唯一的解决方案是创建三个独立的接口。 这是真的吗? 有谁知道另一个解决方案? 我觉得有点奇怪,我们需要重复代码,但是,也许有一个我不理解的原因….. 提前致谢! […]

抽象类作为parcelable

基本上我在我的应用程序中有以下结构: 在没有抽象类ProjectItem情况下实现这样的结构会很简单,但在这种情况下我不知道如何实现它。 抽象类ProjectItem需要一个CREATOR因为它应该是可以分配的。 (如in.readTypedList(mProjectItems, ProjectItem.CREATOR);在构造函数Project(Parcel in)中) 但实际上,出于逻辑原因, CREATOR只能在其派生类中实现。 那么,如何实现这个结构以保持类Project parcelable? 编辑 这就是Project的构造函数之一: private Project(Parcel in) { in.readTypedList(mProjectItems, ProjectItem.CREATOR); } 但正如我已经说过的, ProjectItem不应该实现CREATOR

ormlite是否支持inheritance?

ormlite是否支持这三种inheritance策略? 每个类层次结构的表 每个子类的表 每个具体类的表 我在ORMLite用户组上find了这个讨论 ,但我不确定它是否回答了我的问题。 特别我想使用“每个类层次结构的表”。 如果他们不是ormlite框架的支持,我将创建一个类并忘记inheritance,但我更喜欢使用inheritance。

如何将两种不同的样式应用于android中的一个元素?

我有一个TextView,我想应用一个Style用于所有TextView元素加上另一个我只在特定Activity中使用的样式。 有可能这样做吗?

从父级获取子类名

我有一个基类用于我的所有活动( ActivityBase ),它本身派生自android.app.Activity 。 在onCreate中,我想基于当前正在执行的子类执行一些条件逻辑。 如果SomeCustomActivity和AnotherCustomActivity都扩展了ActivityBase ,我如何在父类( ActivityBase )中确定哪两个是当前正在执行的?