在Android中的TextView中根据文本更改背景

时间:2012-04-11 16:58:41

标签: java android

我正在尝试根据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 ---

知道为什么它不起作用?

3 个答案:

答案 0 :(得分:1)

您要在bookDisp上设置文字(我猜这是TextView),然后您使用TextView中的文字进行比较{{1}对象(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

答案 1 :(得分:0)

尝试:

mainbg.setBackgroundDrawable(getResources().getDrawable(R.drawable.erburrows));

答案 2 :(得分: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);
    }