【发布时间】:2013-07-17 11:44:48
【问题描述】:
我在完成一项简单的任务时遇到了问题。
我有 2 个按钮,我希望同时只有一个可见,所以当您触摸一个按钮时,它会隐藏而另一个会出现。
这是我的代码:
fromAnex = new Button(this);
fromAnex.setText("from");
fromAnex.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("ONClickListener", "from anex");
returnFromAnex();
}
});
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.LEFT_OF,plano.getId());
params.addRule(RelativeLayout.CENTER_VERTICAL);
rl.addView(fromAnex,params);
fromAnex.setVisibility(View.GONE);
toAnex = new Button(this);
toAnex.setText("to");
toAnex.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("ONClickListener", "Show anex");
showAnex();
}
});
RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
params2.addRule(RelativeLayout.RIGHT_OF,plano.getId());
params2.addRule(RelativeLayout.CENTER_VERTICAL);
rl.addView(toAnex,params2);
private void showAnex()
{
fromAnex.setVisibility(View.VISIBLE);
toAnex.setVisibility(View.GONE);
private void returnFromAnex()
{
fromAnex.setVisibility(View.GONE);
toAnex.setVisibility(View.VISIBLE);
我真的不明白为什么,但第一次调用fromAnex.setVisibility(View.GONE); 工作正常,第一次调用fromAnex.setVisibility(View.VISIBLE); 的 showAnex()
也可以,但是下面的toAnex.setVisibility(View.GONE); 不起作用。
然后,当我触摸按钮时,可见性没有任何变化。
有人可以看到我的代码有什么问题吗?
对不起,我的英语不好,谢谢。
编辑:
这两个方法不完整,其余的与此按钮可见性问题无关。
当我在创建按钮后将可见性设置为消失时,它可以工作,但我无法再次将可见性设置为消失,这就是问题所在。
【问题讨论】:
-
是否缺少一些源代码?您的方法
showAnex和returnFromAnex上没有右括号} -
只是让您知道,有一个名为
ViewSwitcher的视图可以在两个视图之间切换,并且适合您的情况。