我目前已经设置了所以有几个TextViews:
单击一个按钮时会更新其中一个按钮,单击其他按钮时不会更改它。
其他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;
}
}
这是怎么做到的?
答案 0 :(得分:4)
在xml布局文件中将“visible”的初始值设置为“invisible”,对于应该不可见的textView,并在onClick方法中更改其文本值并更改可见性:
myTextView.setVisibility(View.VISIBLE);
这里有类似的问题应该有所帮助:How to change visibility of layout programaticly
答案 1 :(得分: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);