0

我是初学者,请帮助我。我很混乱。我想使用数据库调用我的图像,但我不知道如何。请帮我。我的做法是这样的。当文本视图也发生变化时,我想自动更改图像视图的图像

        String question = Utility.capitalise(currentQ.getQuestion());
        TextView qImg = (TextView) findViewById(R.id.question);
        qImg.setText(question);
        ImageView yes = (ImageView) findViewById(R.id.imageQuestions);

        if (qImg.equals("aso"))
            // yes = R.drawable.aso;
            yes.setBackgroundResource(R.drawable.aso);

        else if (qImg.equals("Pusa"))
            yes.setBackgroundResource(R.drawable.pusa);
        else if (qImg.equals("Daga"))
            yes.setBackgroundResource(R.drawable.daga);

question是我在数据库中的问题。它只是一个文本。当问题改变时,图像也在改变。

4

1 回答 1

1

好吧,我认为您想在 TextView 的文本更改时更改 ImageView 的内容。但是我不确定,所以如果我弄错了,请告诉我。

从您发布的代码来看,这似乎只会运行一次。相反,您应该将其移动到如下方法中:

public void updateImages() {
    String question = Utility.capitalise(currentQ.getQuestion());
    TextView qImg = (TextView) findViewById(R.id.question);
    qImg.setText(question);
    ImageView yes = (ImageView) findViewById(R.id.imageQuestions);

    if (qImg.equals("aso"))
        yes.setBackgroundResource(R.drawable.aso);
    else if (qImg.equals("Pusa"))
        yes.setBackgroundResource(R.drawable.pusa);
    else if (qImg.equals("Daga"))
        yes.setBackgroundResource(R.drawable.daga);
}

现在只需updateImages()在您调用setText()TextView 后立即调用。

您还可以将 TextWatcher 分配给 TextView:

qImg.addTextChangedListener(new TextWatcher(){
    public void afterTextChanged(Editable s) {}
    public void beforeTextChanged(CharSequence s, int start, int count, int after){}
    public void onTextChanged(CharSequence s, int start, int before, int count){
        YourActivity.this.updateImages();
    }
}); 
于 2013-03-28T14:18:32.650 回答