1

我有 alistview 当我单击列表视图时它会进入登录屏幕,当登录成功时它会返回带有图标的列表视图..到目前为止它工作良好,问题是当我单击列表视图时图标再次出现时登录屏幕正在启动..我不想在图标可见后再次加载登录屏幕..我尝试了以下操作,但它给出了错误

if (img.getVisibility() == 8) { 
    Intent intent = new Intent(MainActivity.this,LoginActivity.class);                  
    startActivity(intent);
}

任何帮助表示赞赏。

4

5 回答 5

4

采用

if (img.getVisibility() != View.Visible)

不要使用硬编码值。

于 2012-11-30T11:17:11.540 回答
2

将您的条件更改为:

if (img.getVisibility() == View.Visible) 

编辑:或者更好的方式你可以使用 View.isShown()来检查 View 或者它的孩子是否可见

于 2012-11-30T11:07:37.950 回答
1

您不应该真正关注应用程序逻辑的 UI 状态。您最好使用 startActivityForResult,然后在 onActivityResult 中设置一个标志并在您的单击侦听器中使用此标志,也可以使用它来使图标可见或不可见。

如果您离开活动,您还应该考虑在共享首选项中设置标志以实现持久性。

于 2012-11-30T11:09:09.743 回答
1

你面临什么样的错误?你能展示它使用吗?您不应该使用硬代码值来比较可见性,使用这些 View.GONEView.INVISIBLEVIEW.VISIBLE

像这样

if(img.getVisibility != View.VISIBLE){
// do something 
}
于 2012-11-30T11:09:38.377 回答
0

采用

if (img.getVisibility() != View.Visible)

代替

if (img.getVisibility() == 8)

检查http://developer.android.com/reference/android/view/View.html#setVisibility%28int%29

于 2012-11-30T11:06:49.447 回答