2017-09-16 69 views
1

我想显示一个textView对应的按钮和图像知道图像是随机的。例如,当显示红色图像并单击按钮btn1时,将显示textView。如何显示对应于随机图像的textView?

我试过这段代码,但textView仍然不可见。

public class colors extends AppCompatActivity { 
Button btn1, btn2, btn4; 
ImageView img; 
TextView txt1; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_colors); 
    img = (ImageView) findViewById(R.id.imageView3); 
    txt1 = (TextView) findViewById(R.id.txt); 
    btn1 = (Button) findViewById(R.id.red); 
    btn2 = (Button) findViewById(R.id.blue); 
    btn4 = (Button) findViewById(R.id.green); //st.setEnabled(false); 

    int[] cards = {R.drawable.green, R.drawable.red, R.drawable.blue}; 
    Random r = new Random(); 
    final int n = r.nextInt(3); 
    img.setImageResource(cards[n]); 
    btn1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (n == 2) { 
       txt1.setVisibility(View.VISIBLE); 
      } 
     } 
    }); 
} 
+0

您随机化n值'final int n = r.nextInt(3)'。因此,只有当n ramdmomly是2时,textView才会变得可见 – joao86

+0

是的,当n = 2时,将显示thrR.drawable.red ---->将显示texView,但在我的情况下,textView仍然不可见 – clara

+0

仅当您单击btn1和n == 2时,txt1上方才会显示。如果你有更多的代码,你必须显示它 – joao86

回答

0

根据我从你的问题明白了,你想沿着线的东西:

public class colors extends AppCompatActivity { 
    Button btn1, btn2, btn3; 
    ImageView img; 
    TextView txt1; 

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

     img = (ImageView) findViewById(R.id.imageView3); 
     txt1 = (TextView) findViewById(R.id.txt); 
     btn1 = (Button) findViewById(R.id.red); 
     btn2 = (Button) findViewById(R.id.blue); 
     btn3 = (Button) findViewById(R.id.green); //st.setEnabled(false); 

     final int[] cards = {R.drawable.green, R.drawable.red, R.drawable.blue}; 
     Random r = new Random(); 
     final int n = r.nextInt(3); 
     img.setImageResource(cards[n]); 
     img.setId(cards[n]); 
     btn1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // green is cards[0], red is cards[1], blue is cards[2] 
       if (img.getId() == cards[1]) { 
        txt1.setVisibility(View.VISIBLE); 
       } else { 
        // txt1.setVisibility(View.GONE); 
       } 
      } 
     }); 
    } 
} 

设置图像的ID是一样的ID (R.drawable.red)从int数组。这样,您可以稍后点击bt1进行检查。