使用抽象类和Android活动

时间:2016-01-21 16:09:45

标签: java android inheritance android-activity

我有几个具有类似行为的活动我创建了一个基本活动类,作为每个类的父级,可以实现公共元素和方法。

public abstract class ParentActivity extends AppCompatActivity{
    public Class<AppCompatActivity> actRoot;

    void btnCancel(View v){
        Intent i = new Intent(this, actRoot);
        i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(i);
        finish();
    }
}

然后我继续定义一个子类,如下所示

public void ChildActivity extends ParentActivity{
     @Overide
     public void onCreate(Bundle savedInstance){
         actRoot = MainActivity.class;
     }
}

法案root可以是AppCompatActivity的任何子孙。

如何在此上下文中定义要作为AppCompatActivity的相对动态使用的类引用?

2 个答案:

答案 0 :(得分:1)

您的方法可能并不可取,但如果您想尝试一下,则可以使用此方法:

public Class<? extends AppCompatActivity> actRoot;

然后再说:

actRoot = MainActivity.class;

答案 1 :(得分:0)

我不认为这样做是个好主意。如果你有太多的课程,你不能静态地定义它们中的每一个,那么你可能错过了一些其他方法来分解你的代码。

无论如何我会回答:你可以使用delegation pattern,链接的维基百科文章会比我更好地解释。