[英]How can I do not use constructor in MainActivity in Android Studio?
I'm a beginner.我是初学者。 I'm trying to make Locale project with Android Studio.
我正在尝试使用 Android Studio 制作 Locale 项目。 So I made a class regard with Context.
因此,我对 Context 进行了 class 关注。 In MainActivity required a constructor.
在 MainActivity 中需要一个构造函数。 But, I'm heard that MainActivity do not need constructor but onCreate.
但是,我听说 MainActivity 不需要构造函数,而是 onCreate。
Here is my code.这是我的代码。
BaseContextWrapper BaseContextWrapper
public class BaseContextWrapper extends AppCompatActivity {
//AppCompatActivity-FragmentActivity-ComponentActivity-Activity-ContextThemeWrapper-ContextWrapper-Context
public BaseContextWrapper(Context base) {
super.attachBaseContext(base);
}
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1)
@NonNull
public static ContextWrapper wrap(Context context) {
Resources resources = context.getResources();
Configuration newConfig = new Configuration();
DisplayMetrics metrics = resources.getDisplayMetrics();
newConfig.setToDefaults();
newConfig.densityDpi = metrics.densityDpi;
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.JELLY_BEAN_MR1) {
context = context.createConfigurationContext(newConfig);
} else {
resources.updateConfiguration(newConfig, resources.getDisplayMetrics());
}
return new BaseContextWrapper(context);
}
}
MainActivity主要活动
public class MainActivity extends BaseContextWrapper {
public MainActivity(Context base) {
super(base);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
It all depends on what you inherit from.这完全取决于您继承的是什么。 If from "extends Base ContextWrapper", then the constructor is required, it is included in the class. But if from "extends AppCompatActivity" then nothing but the onCreate() method is needed
如果来自“extends Base ContextWrapper”,则需要构造函数,它包含在 class 中。但是如果来自“extends AppCompatActivity”,则只需要 onCreate() 方法
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
Rewrite your MainActivity
as将您的
MainActivity
重写为
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.