android:state_selected是选中
android:state_focused是获得焦点
android:state_pressed是点击
android:state_enabled是设置是否响应事件,指所有事件
选中 = 获取焦点 + 点击
EditTextsetOnFocusChangeListener(new ViewOnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){//获得焦点
}else{//失去焦点
}
}
});
有以下几种情况:
EditText处在一个可以滚动的控件中,例如ListView等,当得到焦点后软件键盘会d出,这个时候滚动控件会重绘,因此会失去焦点。
EditText注册了焦点事件,得到焦点后将焦点转向了其它控件。
EditText禁止了获取焦点。
1、首先,在xml文件中通过让edittext获取焦点
<EditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="17dp"
android:textColor="#333333"
android:textColorHint="#999999"
android:hint="请输入课件描述"
android:gravity="top|left"
android:background="@null"
>
<requestFocus/>
</EditText>
2、在清单文件中给activity添加android:windowSoftInputMode=”stateVisible”属性,这样一进入这个页面的时候光标就自动显示,软键盘也显示出来
<activity
android:name="wonderfulmomentAddCourseWareDescriptionActivity"
android:windowSoftInputMode="stateVisible"></activity>
想知道哪些组件可以得到焦点可以查他们的父类 像View你看看API有没有设置焦点的接口 正好View里面有个属性android:focusable 所以所有继承View的都能获得焦点
平时开发的时候 遇到这样的一个问题: 我开着系统的音乐播放器,我在我的应用程序里面播一段音乐 两个音乐会同时播放通过在stackoverflow查资料后才发行我们得自己音乐需要获取焦点,在我们音乐播完了以后释放掉焦点。这样系统的歌曲会继续播放下面介绍一下步骤
1获取AudioManager对象
AudioManager am = (AudioManager) getSystemService(ContextAUDIO_SERVICE);
2 注册OnAudioFocusChangeListener监听
OnAudioFocusChangeListener afChangeListener = new OnAudioFocusChangeListener() {
public void onAudioFocusChange(int focusChange) {
if (focusChange == AudioManagerAUDIOFOCUS_LOSS_TRANSIENT) {
if(mediaPlayerisPlaying()){
mediaPlayerpause();
}
以上就是关于android当选中和获得焦点的区别全部的内容,包括:android当选中和获得焦点的区别、android 怎么在代码中判断edittext有没有获取焦点、Android中EditText获得焦点后马上又失去了,可能是什么造成的呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)