final ImageView patientAllergyImage = (ImageView) findViewById(R.id.image);
patientAllergyImage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
patientAllergyImage.setImageDrawable(getResources().
getDrawable(R.drawable.nav_down_green));
List.setVisibility(View.GONE);
}
});
我正在使我的列表隐藏,但是当我点击相同的按钮时如何显示它。我无法保留一个布尔值来检查是否点击了它... The final local variable clicked cannot be assigned, since it is defined in an enclosing type
既不是non
final
变量
答案 0 :(得分:8)
试试这个,
public void onClick(View V){
patientAllergyImage.setImageDrawable(getResources().
getDrawable(R.drawable.nav_down_green));
List.setVisibility(List.isShown() ? View.GONE : View.VISIBLE);
}
答案 1 :(得分:3)
您可以使用toogle Button来实现此
,而不是典型的按钮ToggleButton toggle = (ToggleButton) findViewById(R.id.togglebutton);
toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
// hide the listview
} else {
// show the listview
}
}
});
答案 2 :(得分:2)
尝试这样的事情:
public void onClick(View v) {
// TODO Auto-generated method stub
patientAllergyImage.setImageDrawable(getResources().
getDrawable(R.drawable.nav_down_green));
if(List.getVisibility()==View.VISIBLE){
List.setVisibility(View.INVISIBLE)
}else{
List.setVisibility(View.VISIBLE)
}
}
如果需要,可以通过GONE替换INVISIBLE。希望这有帮助。
答案 3 :(得分:1)
删除final
以获取布尔变量或
试试这个
试试这个
if(List.getVisibility()==View.GONE)
{
List.setVisibility(View.VISIBLE);
}
if(List.getVisibility()==View.VISIBLE)
{
List.setVisibility(View.GONE);
}
答案 4 :(得分:1)
这里似乎有一些问题。
首先,你不应该调用listview“List”,这是掩盖名为List的真实类。
如果您遇到一个不错的变量名称,最好使用带有小写“l”的“listView”。
您无需在任何地方使用决赛。
使用setImageResource来保持代码的清晰和可读性。
可读时使用?true:false语法
ImageView patientAllergyImage = (ImageView) findViewById(R.id.image);
patientAllergyImage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//see if the list view is visible
bool bVisible = listView.getVisibility();
//select the image resource
int iImageRes = bVisible?R.drawable.nav_down_green:R.drawable.nav_up_green;
//Toggle Image
(ImageView)v.setImageResource(iImageRes);
//Toggle List Visibility
listView.setVisibility(bVisible?View.GONE:View.VISIBLE);
}
});