我在android中有两个按钮。 Btn1和Btn2。我需要默认显示Btn1,当点击时我需要显示Btn2来代替Btn1。再说一次 单击Btn2,应将其替换为Btn2。请帮我一些例子..
我的代码:
btn1 = (ImageView) findViewById(R.id.firstbtn);
btn2 = (ImageView) findViewById(R.id.secondbutton);
btn2.setVisibility(ImageView.GONE);
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
btn2.setVisibility(ImageView.VISIBLE);
}
});
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
btn2.setVisibility(ImageView.GONE);
}
});
提前致谢
答案 0 :(得分:6)
您可以使用相同的按钮并交替更改其标签,根据级别,您可以进行检查并执行适当的工作。
根据您更新的代码,了解您正在使用ImageView,请尝试使用
ImageView btn = (ImageView) findViewById(R.id.secondbutton);
btn.setTag("1");//can use one empty String "" and null instead of "1" and "2" for optimization
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Object obj = v.getTag();
if(obj instanceof String){
if("1".equals(obj)){
v.setTag("2");
//Your first button state
}else if("2".equals(obj)){
v.setTag("1");
//Your second button state
}
}
...
如果您的案例特定于两个按钮,那么您可以使用两个字符串比较操作
ImageView btn = (ImageView) findViewById(R.id.secondbutton);
btn.setTag(null);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(v.getTag() instanceof String){
v.setTag(null);
//Your first button state
} else {
v.setTag("");
//Your second button state
}
如果您想让代码正常工作
btn1 = (ImageView) findViewById(R.id.firstbtn);
btn2 = (ImageView) findViewById(R.id.secondbutton);
btn2.setVisibility(ImageView.GONE);
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
v.setVisibility(ImageView.GONE);
btn2.setVisibility(ImageView.VISIBLE);
}
});
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
v.setVisibility(ImageView.GONE);
btn1.setVisibility(ImageView.VISIBLE);
}
});
答案 1 :(得分:2)
更改此
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
btn2.setVisibility(ImageView.GONE);
}
});
通过
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
btn2.setVisibility(View.GONE);
btn1.setVisibility(View.VISIBLE);
}
});
和这个
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
btn2.setVisibility(View.VISIBLE);
}
});
通过
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
btn1.setVisibility(View.GONE);
btn2.setVisibility(View.VISIBLE);
}
});
答案 2 :(得分:0)
您可以在布局中创建两个具有相同位置的按钮,然后您可以设置所需的每个按钮的可见性和操作
答案 3 :(得分:0)
可以使用方法visible()来修复其可见性。 ToggleButton或一个按钮并在click事件上切换文本应该比两个按钮更好。