android基础教程之android的listview与edittext冲突解决方法

 更新时间:2014年02月24日 16:19:55   作者:  
这篇文章主要介绍了android的listview与edittext冲突解决方法,需要的朋友可以参考下

最近遇到一个关于android软键盘的问题。在ListView中每个Item中都有个EditText,在最后的几个Item中,EditText第一次点击界面还能向上弹出,正常显示,

但第二次点击时,软件盘就把最后的几个Item给正当住了。这样很影响用户体验的。

其实解决的办法只要想一下,我相信有经验的开发人员就能够想到,让软键盘在消失的时候让相应Item中的EditText消失焦点clearFouce();但是有个关键的问题,

就是在获得返回事件的时候,如果获得的事件不对那就不会达到想要的效果。这个back时间一定要是自定Layout中的back事件才可以。

直接上代码。

复制代码 代码如下:

<cn.test.systemSetting.MyLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/keyboardlayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/main_bg"
    android:orientation="vertical" >
    <ListView
                android:id="@+id/lv_data"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:cacheColorHint="#00000000"
                android:transcriptMode="normal"
                >
     </ListView>
</cn.test.systemSetting.MyLayout>

自定义layout中所作的处理:

复制代码 代码如下:

package cn.test.systemSetting;

import com.********.R;

import android.content.Context;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.LinearLayout;
/**
 *
 * 针对设备管理键盘事件的处理
 * divid小硕
 *
 * **/

public class MyLayout extends LinearLayout {
    private Context context;
    public MyLayout(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
        this.context=context;
        LayoutInflater.from(context).inflate(R.layout.device_manager, this);//此处所加载的layout就是上面的xml,即它的名字就是device_manager.xml
    }
    public MyLayout(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        // TODO Auto-generated constructor stub
    }

   
    public MyLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
        // TODO Auto-generated constructor stub
    }
    @Override
    public boolean dispatchKeyEventPreIme(KeyEvent event) {
        // TODO Auto-generated method stub
        if(context!=null){
            InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
            if(imm.isActive() && event.getKeyCode() == KeyEvent.KEYCODE_BACK){
                View view = DeviceManagerActivity.lv_data.getFocusedChild();
                if(view!=null){
                    view.clearFocus();
                }

            }
        }

        return super.dispatchKeyEventPreIme(event);
    }
}

主界面所采用的加载方式要是这样的:

复制代码 代码如下:

public class DeviceManagerActivity extends Activity implements OnClickListener{
    public static ListView lv_data;
    static DevMgrAdapter adapter;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 1.全屏
        requestWindowFeature(Window.FEATURE_NO_TITLE); // 无标题
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

        this.setContentView(new MyLayout(this));
        init();
    }
}

相关文章

  • 详解Android安全防护之加密算法

    详解Android安全防护之加密算法

    Android应用对安全防范这方面要求越来越高了。特别是金融行业,如果app没有没有做好安全处理,那些很容易被一些Hacker(黑客)所攻击。并不是说做了这些安全防范,这个应用就百分之百的安全的。只是说能够尽可能加大破解难度。本文将详细介绍Android安全防护之加密算法。
    2021-06-06
  • android 仿微信demo——登录功能实现(服务端)

    android 仿微信demo——登录功能实现(服务端)

    这系列文章主要介绍了微信小程序-阅读小程序实例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能给你们提供帮助
    2021-06-06
  • Android 大文件切割与合并的实现代码

    Android 大文件切割与合并的实现代码

    这篇文章主要介绍了Android 大文件切割与合并,实现了很多发文件和视频的切割,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • Android-自定义控件之ListView下拉刷新的实现

    Android-自定义控件之ListView下拉刷新的实现

    本篇文章主要介绍了Android-自定义控件之ListView下拉刷新示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Android选择与上传图片之Matisse教程

    Android选择与上传图片之Matisse教程

    这篇文章主要介绍了在Android中对于图片的选择与上传方法,本文介绍了Matisse的相关使用教程,学习Android的同学进来看看吧
    2021-08-08
  • Android流式布局FlowLayout详解

    Android流式布局FlowLayout详解

    这篇文章主要为大家详细介绍了Android流式布局FlowLayout的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Android设计模式之单例模式解析

    Android设计模式之单例模式解析

    这篇文章主要为大家详细介绍了Android设计模式之单例模式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • Android第三方HTTP网络支持包OkHttp的基础使用教程

    Android第三方HTTP网络支持包OkHttp的基础使用教程

    在GitHub上开源的安卓HTTP编程包OkHttp正在积累着越来越高的人气,这里我们就来看一下这款Android第三方HTTP网络支持包OkHttp的基础使用教程:
    2016-07-07
  • Android 实现双击退出的功能

    Android 实现双击退出的功能

    本文主要介绍Android 实现双击退出,这里给大家提供代码示例,方便大家理解查看,有需要的小伙伴可以参考下
    2016-07-07
  • Android实现朋友圈评论回复列表

    Android实现朋友圈评论回复列表

    这篇文章主要为大家详细介绍了Android实现朋友圈评论回复列表,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11

最新评论