zoukankan      html  css  js  c++  java
  • FocusChange-焦点变化监听事件

    想要监听一个控件的焦点变化情况,发现了一个

    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"

    它代表的是当点击这个控件的时候,这个控件是否获得焦点

  • 相关阅读:
    20145337实验五Java网络编程及安全
    20145337 《Java程序设计》第10周学习总结
    20145337实验四Android开发基础
    20145337 《Java程序设计》第九周学习总结
    20145337实验三实验报告——敏捷开发与XP实践
    20145337《Java程序设计》第八周学习总结
    20145337《JAVA程序设计》第七周学习总结
    JAVA面向对象程序设计——实验报告
    20145337 《Java程序设计》第六周学习总结
    20145336张子扬 《信息安全系统设计基础》第6周学习总结(一)
  • 原文地址:https://www.cnblogs.com/zhangshuli-1989/p/zhangshuli_focus_15923200.html
Copyright © 2011-2022 走看看