根据字符串中的数据更改图像视图的显示图像(如单词)

时间:2017-04-26 00:02:53

标签: android android-studio

简要解释发生了什么。我想更新单个imageView以将其更改为不同名称的可绘制图像。这里只有四个选择,这是因为我从一个旋转器中提取数据,该旋转器可以从另一个活动中选择4个国家。然后,这会将imageView更改为所述国家/地区的自定义可绘制图像。

到目前为止,我不确定我将如何做到这一点,尝试了一些非常基本的if else语句,但它们非常不正确。

我将在下面发布一些内容:

public class WorldImage extends AppCompatActivity {

    TextView textCountry;

    private String stringCountry;

    ImageView imageCountry;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_worldimage);

        Intent aIntent = getIntent();
        stringCountry = aIntent.getStringExtra("movetoImageActivity");

        textCountry= (TextView) findViewById(R.id.movetoviewCountry);
        imageCountry = (ImageView) findViewById(R.id.imageCountry);

它在这附近我迷路了,一些非常基本的如果& else if语句,例如:

        if (textCountry.getText().toString().equals("Europian Union"))
{
    imageCountry.setImageResource(R.drawable.eu_flag);
}

这里会推荐什么?

2 个答案:

答案 0 :(得分:1)

打印日志怎么样?

    Intent aIntent = getIntent();
    stringCountry = aIntent.getStringExtra("movetoImageActivity");

    textCountry= (TextView) findViewById(R.id.movetoviewCountry);
    imageCountry = (ImageView) findViewById(R.id.imageCountry);



    Log.e("TEST", "stringCountry : " + stringCountry );
    Log.e("TEST", "textCountry: " + textCountry.getText().toString());

    if (stringCountry.equals("Europian Union")){
       Log.e("TEST", "Europian Union");
       imageCountry.setImageResource(R.drawable.eu_flag);
    }else   if (stringCountry.equals("Something else")){
       Log.e("TEST", "Something else");
       imageCountry.setImageResource(R.drawable.something);
    }

答案 1 :(得分:0)

您可以使用这样的开关语句:

switch(stringCountry){
    case "Europian Union":
          imageCountry.setImageResource(R.drawable.eu_flag);
          break;
    case "United States":
          imageCountry.setImageResource(R.drawable.us_flag);
          break;
    default: 
          // optional. Use if all comparisons above fail and you want to handle it
         break;
}