0

我正在尝试根据文本视图中的内容来更改布局的背景。我知道如何在 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 ---

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

4

3 回答 3

1

您正在设置文本bookDisp(我猜这是TextView),然后不是使用其中的文本,而是在object( ) 和将失败的测试TextView之间进行比较。您可能想要这样做:TextViewbookDispString

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

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

bookDisp.getText().toString()
于 2012-04-11T17:07:43.680 回答
0

尝试:

mainbg.setBackgroundDrawable(getResources().getDrawable(R.drawable.erburrows));
于 2012-04-11T17:07:34.870 回答
0
if(bookDisp.equals("Green Eggs")){
    mainbg.setBackgroundResource(R.drawable.seuss);
    }else if (bookDisp.equals("Tarzan")){
        mainbg.setBackgroundResource(R.drawable.erburrows);
    }

用下面的代码替换上面的代码并尝试:::

if(bookDisp.getText().toString().equals("Green Eggs")){
    mainbg.setBackgroundResource(R.drawable.seuss);
    }else if (bookDisp.getText().toString().equals("Tarzan")){
        mainbg.setBackgroundResource(R.drawable.erburrows);
    }
于 2012-04-11T17:48:05.837 回答