我正在尝试根据textview中的内容来更改布局的背景。我知道如何在Java中设置背景:

mainbg.setBackgroundResource(R.drawable.erburrows);


但是如果我将该调用包装在if语句中,则不会发生任何事情。没有错误标志或任何内容,只是在后台不显示任何内容。这是我正在使用的代码:

        //--- BACKGROUND CHANGE ---
    String tvString = showBook.getText().toString();
    bookDisp.setText(tvString);
    View mainbg = bgview.getRootView();
    if(bookDisp.equals("Green Eggs")){
    mainbg.setBackgroundResource(R.drawable.seuss);
    }else if (bookDisp.equals("Tarzan")){
        mainbg.setBackgroundResource(R.drawable.erburrows);
    }

    //--- END BACKGROUND CHANGE ---


知道为什么它不起作用吗?

最佳答案

您正在bookDisp上设置文本(我想这是TextView),然后在TextView对象(TextView)和测试之间进行比较,而不是使用该bookDisp中的文本String将会失败。您可能想要做:

if(tvString.equals("Green Eggs")){
    mainbg.setBackgroundResource(R.drawable.seuss);
    }else if (tvString.equals("Tarzan")){
        mainbg.setBackgroundResource(R.drawable.erburrows);
    }
//...


如果tvString是来自目标TextView的文本或获取字符串:

bookDisp.getText().toString()

10-06 02:29