2012-12-09 74 views
1

我現在有它成立這樣有幾個TextViews:當點擊一個按鈕Android:如何在單擊按鈕時顯示TextView?

  • 其中之一是更新,點擊後其他按鈕不會改變它。

  • 其他TextViews顯示一個數字,我希望它們在單擊其中一個按鈕時被更改,但是當前所有的TextView都可見並且數字未被更改。

我想其他TextViews(下面NUM1-NUM3)是無形的最初,然後,當用戶點擊任一按鈕中的一個,所述TextViews變得可見,它們的值是由我有一個方法更新書面。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_name); 
    num1 = randNum(); 
    num1 = alterNum(num1);  
    num1View = (TextView) findViewById(R.id.number1); 
    num1View.setText("Num1 Number: " + String.valueOf(num1)); 

    num2 = randNum(); 
    num2 = alterNum(num2); 
    num2View = (TextView) findViewById(R.id.number2); 
    num2View.setText("Num2 Number: " + String.valueOf(num2)); 

    num3 = randNum(); 
    num3 = alterNum(num3); 
    num3View = (TextView) findViewById(R.id.number3); 
    num3View.setText("Num3 Number: " + String.valueOf(num3)); 

    // This one is always visible, the ones above should be invisible 
    // and appear onClick 
    currentNum = randNum(); 
    myTextView = (TextView) findViewById(R.id.current_number); 
    myTextView.setText("Current Number: " + String.valueOf(currentNum)); 
    okButton = (Button) findViewById(R.id.ok_button); 
    okButton.setOnClickListener(this); 
    changeButton = (Button) findViewById(R.id.change_button); 
    changeButton.setOnClickListener(this); 
} 

我的onClick:

@Override 
public void onClick(View v) { 
    switch (v.getId()) { 
    case R.id.num_confirmation: 
     //do nothing 
     // do not let user hit buttons more than once (either case) 
     changeButton.setEnabled(false); 
     okButton.setEnabled(false); 
     break; 
    case R.id.swap_button: 
     currentNum = alterNum(); 
     myTextView.setText("Current Number: " + String.valueOf(currentNum)); 
     // do not let user hit buttons more than once (either case) 
     swapButton.setEnabled(false); 
     okButton.setEnabled(false); 
     break; 
    default: 
     break; 
    } 
} 

這是如何完成的?

回答

3

設定的初始值「看得見」在您的xml佈局文件中對於應該隱藏的文本視圖以及在您的onClick方法中「隱形」,以更改其文本值並更改公開程度:

myTextView.setVisibility(View.VISIBLE); 

這裏是類似的問題,應該有所幫助:How to change visibility of layout programaticly

+0

非常好。謝謝!關於改變num1-num3的數字的小問題:這些陳述在onCreate中是否正確?或者我需要將它們移至onClick或其他地方? (即應計算初始數字,然後當單擊任一按鈕時,數字應改變,修改後的數字應顯示在點擊上。) –

+0

喲,您可以在onCreate中完成,但onClick只會在計算時纔會計算值他們將需要。 – fgeorgiew

2
yourTextView.setVisibility(View.VISIBLE); 

這使得您的textview可見。

yourTextView.setVisibility(View.INVISIBLE); 

這使得你的textview不可見,但保持佈局。

yourTextView.setVisibility(View.GONE); 

這將刪除它,以便其他視圖可以重新排列。您仍然可以調用View.VISIBLE使其再次出現。

因此,例如,你希望它回來,你可以把這個你定義的TextView(findviewbyid)後

num1View.setVisibility(View.INVISIBLE); 

然後:

num1View.setVisibility(View.VISIBLE); 
相關問題