监听

来源:互联网 发布:淘宝店铺装修尺寸 编辑:程序博客网 时间:2024/06/05 17:24

长按监听

需要实现OnLongClickListener接口

private OnLongClickListener mLongClick = new OnLongClickListener() {    @Override    public boolean onLongClick(View v) {        tvShow.setText("按钮被长按了");        //false表示不拦截事件        //true表示拦截事件        return true;    }};

注意onLongClick的返回值,false不拦截事件,true拦截事件

通过视图的setOnLongClickListener来设置监听

btn1.setOnLongClickListener(mLongClick);

Logcat的使用

主要有5个等级的信息打印

Log.v(tag,msg) 最全的详细日志Log.d(tab,msg) debug级别的打印Log.i(tab,msg)  info级别Log.w(tab,msg) warn级别Log.e(tab,msg) error级别的打印

如果需要导出机器中的日志可以使用adb指令

adb logcat -v time>D:\log201704201032.txt

停止打印用Ctrl+C

EditText

android:inputType="textPassword"设置输入类型,帮助输入法显示合适的键盘类型android:maxLength="5" 最大的宽度有多少个字符,宽必须是wrap_contentandroid:ems="5"多少个字符的宽度android:hint="@string/et_hint"输入框提示

设置输入的光标位置

et.setSelection(index); 设置输入位置.起始光标和结束光标位置一样

监听键盘的Enter键

    et.setOnEditorActionListener(new OnEditorActionListener() {        @Override        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {            if(v.getId() == R.id.et1){                Log.e("m_tag","输入框输入完毕");            }            Log.e("m_tag",event.getKeyCode()+"===="+v.getText());            //处理Enter按下之后的逻辑            return false;        }    });

内容的处理

    Editable str = et.getText();    str.append("2");    str.insert(where, text)    s.delete(start, end);

监听文本变化

// 监听输入的内容变化情况    et.addTextChangedListener(new TextWatcher() {            //改变中            @Override            public void onTextChanged(CharSequence s, int start, int before,                    int count) {                Log.e("m_tag", "onTextChanged:" + s);            }            //改变前            @Override            public void beforeTextChanged(CharSequence s, int start, int count,                    int after) {                Log.e("m_tag", "beforeTextChanged:" + s);            }            //改变后            @Override            public void afterTextChanged(Editable s) {                Log.e("m_tag", "afterTextChanged:" + s);                if (s.length() > 6) {                    s.delete(6, s.length());                }            }        });

单选按钮和多选按钮

android:checked="true"设置默认选中状态 true为选中 false不选中android:button="按钮资源" 可以控制选择框前面的按钮 android:button="@null" 表示去掉前面的按钮
CheckBox    xml中:     <CheckBox        android:id="@+id/ch_moves"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:checked="false"        android:text="看电影" />    java中可以监听选择变化    /**     * 选择框变化的监听器(单个选择框)     */    private CompoundButton.OnCheckedChangeListener onCkeckChange = new     CompoundButton.OnCheckedChangeListener() {        @Override        public void onCheckedChanged(CompoundButton buttonView,                boolean isChecked) {            if (isChecked) {                list.add(buttonView.getText().toString());                setTitle(buttonView.getText() + "被选中");            } else {                list.remove(buttonView.getText().toString());                setTitle(buttonView.getText() + "被取消选中");            }        }    };
设置监听((CheckBox) findViewById(R.id.ch_moves)).setOnCheckedChangeListener(onCkeckChange);

RadioButton和RadioGroup,RadioGroup继承自LinearLayout

<RadioGroup        android:id="@+id/sex_group"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:orientation="vertical" >        <RadioButton            android:id="@+id/r_man"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="男" />        <RadioButton            android:id="@+id/r_woman"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="女" />    </RadioGroup>

在java中可以监听选择变化

    private RadioGroup.OnCheckedChangeListener onGroupCheckChange = new     RadioGroup.OnCheckedChangeListener() {        @Override        public void onCheckedChanged(RadioGroup group, int checkedId) {            RadioButton btn = (RadioButton) findViewById(checkedId);            setTitle("选中了:"+btn.getText());        }    };
sexGroup = (RadioGroup) findViewById(R.id.sex_group);    sexGroup.setOnCheckedChangeListener(onGroupCheckChange);获取结果    int id = sexGroup.getCheckedRadioButtonId();清除所有的选中状态    sexGroup.clearCheck();
0 0
原创粉丝点击