2017-09-16 66 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進行檢查。