如何在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
}

本文来自投稿,不代表运维实战侠立场,如若转载,请注明出处:https://www.shizhanxia.com/372.html

(0)
上一篇 2022年6月29日 下午3:55
下一篇 2022年6月29日 下午3:55

相关推荐

发表评论

登录后才能评论