這是一個擴展的第二個答案:
想象一下,你正在努力實現BaseActivity不設置在onCreate方法的任何佈局。
public abstract class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
然後想象你有一些其他的活動(擴展BaseActivity),其中規定了一些佈局:
public class MainActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
activity_main.xml中:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/my_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
所以在第一次當你可以在BaseActivity中使用您的按鈕onPostCreate方法:
public abstract class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
Button btn = (Button) findViewById(R.id.myBtn); //this is the when you can initialise your button
}
}
使用BaseActivity是製作優秀應用程序的常見做法!
我真的是唯一一個使用此方法嗎? – sandalone