最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

android基礎(chǔ)教程之a(chǎn)ndroid的listview與edittext沖突解決方法

 更新時(shí)間:2014年02月24日 16:19:55   作者:  
這篇文章主要介紹了android的listview與edittext沖突解決方法,需要的朋友可以參考下

最近遇到一個(gè)關(guān)于android軟鍵盤(pán)的問(wèn)題。在ListView中每個(gè)Item中都有個(gè)EditText,在最后的幾個(gè)Item中,EditText第一次點(diǎn)擊界面還能向上彈出,正常顯示,

但第二次點(diǎn)擊時(shí),軟件盤(pán)就把最后的幾個(gè)Item給正當(dāng)住了。這樣很影響用戶體驗(yàn)的。

其實(shí)解決的辦法只要想一下,我相信有經(jīng)驗(yàn)的開(kāi)發(fā)人員就能夠想到,讓軟鍵盤(pán)在消失的時(shí)候讓相應(yīng)Item中的EditText消失焦點(diǎn)clearFouce();但是有個(gè)關(guān)鍵的問(wèn)題,

就是在獲得返回事件的時(shí)候,如果獲得的事件不對(duì)那就不會(huì)達(dá)到想要的效果。這個(gè)back時(shí)間一定要是自定Layout中的back事件才可以。

直接上代碼。

復(fù)制代碼 代碼如下:

<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中所作的處理:

復(fù)制代碼 代碼如下:

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;
/**
 *
 * 針對(duì)設(shè)備管理鍵盤(pán)事件的處理
 * 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);
    }
}

主界面所采用的加載方式要是這樣的:

復(fù)制代碼 代碼如下:

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); // 無(wú)標(biāo)題
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

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

相關(guān)文章

最新評(píng)論

体育| 威信县| 柘城县| 通海县| 论坛| 五原县| 南安市| 包头市| 密云县| 阿克苏市| 应城市| 剑川县| 定安县| 凤山县| 甘洛县| 樟树市| 天台县| 延边| 城口县| 龙岩市| 青龙| 湘乡市| 密云县| 南召县| 临澧县| 定兴县| 巴塘县| 镶黄旗| 岳阳县| 神池县| 岳阳市| 重庆市| 永川市| 疏附县| 安义县| 彭山县| 商洛市| 石楼县| 永定县| 达州市| 泽库县|