android - 无法在可扩展 ListView 中输入编辑文本

标签 android expandablelistview android-edittext

我正在使用包含 2 个不同子项的可扩展 ListView。子布局包含 3 个 EditText 字段。当我展开组时,它会显示子布局,但我无法在 edittext 字段中键入任何文本。

我在自定义可扩展列表适配器中的代码如下:

public View getChildView(int groupPosition, int childPosition, boolean arg2, View childView,
        ViewGroup parent) 
{
    switch (groupPosition)
    {
    case 0:
        childView = inflater.inflate(R.layout.edit_personal_layout, null);
        final EditText fname = (EditText)childView.findViewById(R.id.editTextFname);
        fname.setOnClickListener(new OnClickListener() {

            public void onClick(View arg0) 
            {
                // TODO Auto-generated method stub
                fname.setFocusable(true);
            }
        });

        break;
    case 1:
        childView = inflater.inflate(R.layout.edit_experience_layout, null);
        break;
    case 2:
        childView = inflater.inflate(R.layout.edit_qualification_layout, null);
        break;
    case 3:
        childView = inflater.inflate(R.layout.edit_login_layout, null);
        break;
    case 4:
        childView = inflater.inflate(R.layout.edit_other_layout, null);
        break;
    }

    return childView;
}


public View getGroupView(int position, boolean arg1, View view, ViewGroup parent) 
{
    if(view==null)
    {
        view = inflater.inflate(R.layout.edit_head, null);

    }
    TextView head = (TextView)view.findViewById(R.id.list_item_text_view_head);
    head.setText(menu[position]);
    return view;
}

最佳答案

1) 可能是您的 editText 没有获得焦点,这就是您无法输入任何内容的原因。尝试在 xml-layout 文件中使用以下行。

 android:descendantFocusability="blocksDescendants"

更多关于给予子元素焦点的信息,你可以引用这个link .

2) 如果上述解决方案不起作用,那么您可以尝试在 ListView 中添加。

<ListView
    android:id="@android:id/list" 
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent"
    android:descendantFocusability="beforeDescendants"
    />

并更改 mainfest.xml 中的 Activity :

<activity android:name= ".yourActivity" android:windowSoftInputMode="adjustPan"/>

3) 如果还是不行,看看这个 link (focusable-edittext-inside-listview)还有这个link .

希望这能解决您的问题。

关于android - 无法在可扩展 ListView 中输入编辑文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14353651/

相关文章:

android - 快速滚动自定义拇指

android - 如何使整个显示可滚动

android - 在 PopBackStack 上保留数据

android - 在 Android 中强制关闭 map View 上方的编辑文本

android - Agora 视频通话布局

java - 是否可以从外部闪存驱动器运行 java (jdk-windows)、Eclipse (indigo) 和 Android-sdk 用于 android 应用程序开发

android - 在 Android 上使用 gridview 多次调用 getChildView

android - 如何在多行文本的背景中创建圆角,其中线条具有不同的宽度

android - 如何为 EditText android 设置整数(不带逗号)

android - 为什么在 kotlin 中启动 flatMap 时需要调用 toList()?