Android 应用程序上的背景更改使我的应用程序崩溃

Android 应用程序上的背景更改使我的应用程序崩溃,android,onclick,crash,onclicklistener,Android,Onclick,Crash,Onclicklistener,我正在开发一个应用程序只是为了好玩,我对android世界还是很陌生。但我想在我的应用程序中添加一个功能,将背景颜色更改为黑色或白色,文本颜色也更改为黑色或白色。但问题是,当我打开应用程序时,它会立即崩溃。这是后台更改的MainActivity.java代码: RelativeLayout MainActivity; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedIns

我正在开发一个应用程序只是为了好玩,我对android世界还是很陌生。但我想在我的应用程序中添加一个功能,将背景颜色更改为黑色或白色,文本颜色也更改为黑色或白色。但问题是,当我打开应用程序时,它会立即崩溃。这是后台更改的MainActivity.java代码:

RelativeLayout MainActivity;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    Button theme_White = (Button) findViewById(R.id.WhiteTheme);
    Button theme_Black = (Button) findViewById(R.id.Blacktheme);
    final RelativeLayout MainActivity = (RelativeLayout)findViewById(R.id.MainActivity);
        theme_White.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                 MainActivity.setBackgroundColor(getResources().getColor(R.color.white));
            }
        });

        theme_Black.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                  MainActivity.setBackgroundColor(getResources().getColor(R.color.black));
            }
        });

    setContentView(R.layout.content_main);

        theme_White.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
            TextView random = (TextView)findViewById(R.id.random);
            random.setTextColor(getResources().getColor(R.color.black));
        }
        });

        theme_Black.setOnClickListener(new View.OnClickListener() {
           public void onClick(View v) {
               TextView random = (TextView)findViewById(R.id.random);
               random.setTextColor(getResources().getColor(R.color.white));
           }
        });
WhiteTheme是将主题更改为白色背景和黑色文本的按钮,Blacktheme是将主题更改为黑色背景和白色文本的按钮。MainActivity是我的activity_main.xml文件的id。 有人能告诉我怎么修复这次车祸吗? 谢谢

[编辑]
Android Studio现在表示,这些方法可能会产生“java.lang.NullPointerException”,我该如何解决这个问题?

我认为你的应用程序正在崩溃,因为你没有传递上下文。 试试这个:

final RelativeLayout MainActivity = (RelativeLayout)findViewById(R.id.MainActivity);
        theme_White.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                 MainActivity.setBackgroundColor(this.getResources().getColor(R.color.white));
            }
        });

你甚至不打算告诉我们错误是什么?至少你应该发布你的logcat输出。我不使用模拟器,因为我的电脑太烂了。我直接把它下载到我的手机上,然后启动它,所以你有0个调试功能?根本不是一条好的路线。是的,我想是的,但我真的不知道每当我输入这个时除了我的电话之外我还能用什么。getResources getResources部分变红并声明:无法解析方法“getResources”。当我删除这个部分时,这不会发生,但是。。。当我删除此部分时,getColor部分将获得一行通过它的代码。抱歉,我忘记了它是如何用英语调用的,因此您必须像这样调用MainActivity.this.getResources