这是XML文件代码:
<ImageView
android:id="@+id/ivh4c5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="true"
android:focusableInTouchMode="true"
android:clickable="true"
android:src="@drawable/logoutmenu" />
这是代码片段:
logOut.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v)
{
final SharedPreferences prefs = getApplicationContext().getSharedPreferences("ProfileName", MODE_PRIVATE);
Editor editor = prefs.edit();
editor.clear();
editor.commit();
finish();
}});
结果:
点击退出图片时,应用程序必须退出(仅限第一次)。
问题:
单击注销图像时,第一次单击时不响应,我必须再次单击它才能从应用程序注销。
请提供更正后的代码。
答案 0 :(得分:2)
仅使用
<ImageView
android:id="@+id/ivh4c5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/logoutmenu" />
答案 1 :(得分:1)
使用您的xml代码,您可以在第一次点击时关注ImageView
,并在第二次点击时调用onClick
。
您应该首先点击android:focusable="false" android:focusableInTouchMode="false"
(或删除行)以响应。
如果您希望图片可以调焦并响应首次点击,您可以查看:onFocusChangeListener
答案 2 :(得分:0)
通过单击可聚焦的ImageView,可以调用OnFocusChangeListener()。你可以得到这样的事件:
logOut.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
final SharedPreferences prefs = getApplicationContext().getSharedPreferences("ProfileName", MODE_PRIVATE);
Editor editor = prefs.edit();
editor.clear();
editor.commit();
finish();
}
}
}
});