标签:
想要监听一个控件的焦点变化情况,发现了一个
view.setOnFocusChangeListener(new OnFocusChangeListener() { ...... }
现在写一个小demo,学习一下这个方法的使用。看如下代码
布局xml
<RelativeLayout android:id="@+id/abc" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/bt" android:layout_width="200dp" android:layout_height="100dp" android:layout_centerInParent="true" android:textColor="#ffffff" android:gravity="center" android:background="@drawable/select" android:focusableInTouchMode="true" /> <ImageButton android:id="@+id/bt1" android:layout_width="100dp" android:layout_height="100dp" android:layout_below="@+id/bt" android:focusableInTouchMode="true" android:src="@drawable/select" /> <ImageButton android:layout_width="100dp" android:layout_height="100dp" android:layout_alignParentRight="true" android:layout_below="@+id/bt" android:focusableInTouchMode="true" android:src="@drawable/select" /> </RelativeLayout>
代码
package com.example.alert; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.ActionMode; import android.view.View; import android.view.View.OnFocusChangeListener; import android.widget.Button; import android.widget.ImageButton; public class HeadSetActivity extends Activity { private ImageButton imageButton; private Button button; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageButton = (ImageButton) findViewById(R.id.bt1); button = (Button) findViewById(R.id.bt); imageButton.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View arg0, boolean arg1) { // TODO Auto-generated method stub button.setText("focus==="+arg1); } }); } }
我们看下运行结果
总结如下
1.这个方法的使用非常简单,也就是当view的焦点状态发生变化的时候,这个事件就会触发。参数arg1代表的是当前控件的焦点状态
2.xml中有一个属性
android:focusableInTouchMode="true"
它代表的是当点击这个控件的时候,这个控件是否获得焦点
标签:
原文地址:http://www.cnblogs.com/zhangshuli-1989/p/zhangshuli_focus_15923200.html