android– 软键盘“del”键在Gallery小部件的EditText中失败

android– 软键盘“del”键在Gallery小部件的EditText中失败,第1张

概述我正在使用androidSDK2.2在Eclipse构建ID20090920-1017中开发应用程序并在GoogleNexusOne上进行测试.出于以下测试的目的,我在非根电话上使用IME“Android键盘”.我有一个EditText小部件,它表现出一些非常奇怪的行为.我可以输入文字,然后按“del”键删除该文字;但在输入’spa

我正在使用android SDK 2.2在Eclipse构建ID 20090920-1017中开发应用程序并在Google Nexus One上进行测试.出于以下测试的目的,我在非根电话上使用IME“Android键盘”.

我有一个EditText小部件,它表现出一些非常奇怪的行为.我可以输入文字,然后按“del”键删除该文字;但在输入’space’字符后,“del”键将不再删除该空格字符前的字符.

一个例子说千言万语,所以请考虑以下两个非常简单的应用……

示例1:linearLayout小部件中的EditText:

package com.example.linear.edit;import androID.app.Activity;import androID.os.Bundle;import androID.vIEw.VIEwGroup.LayoutParams;import androID.Widget.EditText;import androID.Widget.gallery;import androID.Widget.linearLayout;public class linearEdit extends Activity{    @OverrIDe    public voID onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);                linearLayout layout = new linearLayout(getApplicationContext());        layout.setLayoutParams(new gallery.LayoutParams(gallery.LayoutParams.MATCH_PARENT, gallery.LayoutParams.MATCH_PARENT));        EditText edit = new EditText(getApplicationContext());        layout.addVIEw(edit, new linearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));         setContentVIEw(layout);    }}

运行上面的应用程序,输入文本“编辑示例”,然后按“del”键几次,直到整个句子被删除.一切正常.

现在考虑示例2:gallery小部件中的EditText:

package com.example.gallery.edit;import androID.app.Activity;import androID.os.Bundle;import androID.vIEw.VIEw;import androID.vIEw.VIEwGroup;import androID.vIEw.VIEwGroup.LayoutParams;import androID.Widget.ArrayAdapter;import androID.Widget.EditText;import androID.Widget.gallery;import androID.Widget.linearLayout;public class galleryEdit extends Activity{    private final String[] galleryData = {"string1", "string2", "string3"};    @OverrIDe    public voID onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);                gallery gallery = new gallery(getApplicationContext());        gallery.setAdapter(new ArrayAdapter(getApplicationContext(), androID.R.layout.simple_List_item_1, galleryData)        {            @OverrIDe            public VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent)            {                linearLayout layout = new linearLayout(getApplicationContext());                layout.setLayoutParams(new gallery.LayoutParams(gallery.LayoutParams.MATCH_PARENT, gallery.LayoutParams.MATCH_PARENT));                EditText edit = new EditText(getApplicationContext());                layout.addVIEw(edit, new linearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));                 return layout;            }        });        setContentVIEw(gallery);    }}

运行上面的应用程序,输入文本“编辑示例”,然后按“del”键几次.如果您遇到与我相同的问题,那么您会发现无法删除“空格”字符.一切都不顺利.

如果有人能够对这个问题有所了解,我将非常感激.

问候

解决方法:

我也遇到过这个问题.我没有编写自己的gallery视图,而是覆盖了导致此问题的gallery视图的行为.它基本上捕获了del(和return)键事件.我的解决方案

public class Patchedgallery extends gallery{    public Patchedgallery(Context context)    {        super(context);    }    public Patchedgallery(Context context, AttributeSet attrs)    {        super(context, attrs);    }    public Patchedgallery(Context context, AttributeSet attrs, int defStyle)    {        super(context, attrs, defStyle);    }    @OverrIDe    public boolean dispatchKeyEvent(KeyEvent event)    {        boolean handled = false;        if (getFocusedChild() != null)        {            handled = getFocusedChild().dispatchKeyEvent(event);        }        if (!handled)        {            handled = event.dispatch(this, null, null);        }        return handled;    }}

我希望它可以为下一个有这个问题的人节省一些麻烦:)

总结

以上是内存溢出为你收集整理的android – 软键盘“del”键在Gallery小部件的EditText中失败全部内容,希望文章能够帮你解决android – 软键盘“del”键在Gallery小部件的EditText中失败所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1113927.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存