如何在OncreateMethod中同时使用AppCompatActivity和Activity类[重复]。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在OncreateMethod中同时使用AppCompatActivity和Activity类[重复]。相关的知识,希望对你有一定的参考价值。

我建立了语言设置(使用activity类)和工具栏设置(使用appcompatactiviy)。我想让它们在createmethod上进行设置,但我不能扩展两个类,即activity和appcompatactivity。但我不能扩展两个类,即activity和appcompatactivity。我将它们分别扩展到两个类(toolbar和SetupActivity)。我从toolbar类中调用toolbar settings来设置toolbar,但是编译器给了我一个错误。我怎样才能做到不出错呢?我可能会犯错误,因为我是新的类主题。代码。

class toolbar extends AppCompatActivity{
@Override
public void setSupportActionBar(@Nullable Toolbar toolbar) {
    super.setSupportActionBar(toolbar);
}

@Nullable
@Override
public ActionBar getSupportActionBar() {
    return super.getSupportActionBar();
}
}

public class SetupActivity extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Locale locale;
    if(getLocale()==null){
        locale = Locale.getDefault();
    }else{
        locale = new Locale(getLocale());
    }

    Locale.setDefault(locale);
    Configuration config = new Configuration();
    config.locale = locale;
    getBaseContext().getResources().updateConfiguration(config,
            getBaseContext().getResources().getDisplayMetrics());

    setContentView(R.layout.activity_setup);

    Toolbar setupToolBar= findViewById(R.id.setupToolbar);
    toolbar a = new toolbar();
    a.setSupportActionBar(setupToolBar);
    a.getSupportActionBar().setTitle(R.string.action_setting_text);
 }

  public String getLocale(){
    SharedPreferences prefs= getSharedPreferences("Settings", 
 Activity.MODE_PRIVATE);
    String language= prefs.getString("My_Lang", "");
    return language;
}

错误:java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tower935.blogcom.tower935.blog.SetupActivity}: java.lang.NullPointerException: 试图在一个空对象引用上调用虚拟方法'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()'。请帮我解决这个问题。谢谢。

答案

你可能会得到NPException,因为一些组件没有被初始化。

尝试设置setContentView(R.layout.activity_setup)。

就在super.onCreate(savedInstanceState)之后,设置setContentView(R.layout.activity_setup)。

像这样。

@override
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_setup);

    // Rest of the code goes here
}

以上是关于如何在OncreateMethod中同时使用AppCompatActivity和Activity类[重复]。的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PowerShell 读取/写入 App.config 设置?

如何在 Express Generator App Skeleton 中使用 Node Cluster 模块

如何在保护用户隐私的同时实现精准广告投放?

在单个 Google App Engine 项目中同时使用 Java 和 Python

WiX 3.8:使用相同注册表值的两个MSI。如果同时卸载两个MSI,如何删除注册表值?

如何使用Selenium-Grid