简体   繁体   English

如何在 Android Studio 的 MainActivity 中不使用构造函数?

[英]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.

相关问题 如何在Android Studio上将字符串从SecondActivity传递给MainActivity? - How do I pass string from SecondActivity to MainActivity on Android Studio? 我如何从 Android Studio 的 Mainactivity 中的 Dialog 做出反应? - How can i react from Dialog in Mainactivity in Android Studio? Android Studio 看不到 MainActivity - Android Studio can not see MainActivity Android Studio - 如何让小部件打开 URL 而不是 MainActivity - Android Studio - How do I get the widget to open the URL instead of the MainActivity 如何在 MainActivity.java 中发出简单的 HTTP 请求? (安卓工作室) - How can I make a simple HTTP request in MainActivity.java? (Android Studio) 如何在 Android Studio 中从 ApplicationTest.java 编辑 MainActivity 的 EditText 字段? - How can I edit an EditText field of MainActivity from ApplicationTest.java in Android Studio? 如何将值从 MainActivity 传递到 Java Android Studio 中的接口到我的接口? - How can i pass a value to an interface in Java Android Studio from MainActivity to my Interface? Eclipse Android(ADT)如何使用MainActivity类中其他类的方法? - Eclipse Android (ADT) How do I use methods from other classes in MainActivity class? 如何在布局中使用 MainActivity 中的变量? - How do I use a variable from my MainActivity in my layout? 对于 Android Studio 中的自定义按钮,我是否必须在 MainActivity.java 中插入代码? - For custom buttons in Android Studio do I have to insert code in MainActivity.java?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM