Android编程 - ListView中的Multiline EditText

时间:2011-07-02 08:13:06

标签: java android listview android-edittext

我有一个ListView,其中每一行包含一个TextView和一个EditText。我发现我无法使用此EditText获得多行。无论我输入什么,字符串都不会换行到下一行。此外,软键盘不显示“输入键” - 而是显示“完成”键。

如果我将块复制到ListView外部,它将作为多行。但它在ListView中不起作用。

如果有人能说清楚,我会很感激的。谢谢!

我的ListView行有这样的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" 
android:layout_height="wrap_content"
android:orientation="horizontal">

<TextView 
    android:layout_width="140dp"
    android:layout_height="fill_parent"
    android:gravity="center_vertical|right"
    android:paddingLeft="3dp"
    android:paddingRight="5dp" 
    android:id="@+id/listitem_maindesc"
    android:textColor="#000000"
    android:textSize="16sp"></TextView>

<EditText
    android:id="@+id/listitem_entry"        
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textSize="16sp"
    android:singleLine="false"
    android:lines="3"
    android:minLines="3"
    android:inputType="textMultiLine"       
    />

</LinearLayout>

2 个答案:

答案 0 :(得分:0)

我解决了与此相同的问题,但更改了我的OnKeyListener以返回false。

答案 1 :(得分:0)

我认为问题出在你的xml上,因为你没有在xml中定义editText不应该高于textView,因此它将占用最大长度。

试试这个:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"                                 
  android:layout_width="fill_parent"  
  android:layout_height="wrap_content" >
    <TextView 
      android:layout_width="140dp"
      android:layout_height="wrap_content"
      android:layout_alignParentRight="true"
      android:paddingLeft="3dp"
      android:paddingRight="5dp" 
      android:id="@+id/listitem_maindesc"
      android:textColor="#000000"
      android:layout_centerVertical="true"
      android:textSize="16sp" >  </TextView>

    <EditText
      android:id="@+id/listitem_entry"        
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:textSize="16sp"
      android:singleLine="false"
      android:layout_alignParentLeft="true"
      android:layout_toLeftOf=""
      android:layout_centerVertical="true"
      android:inputType="textMultiLine"       />
</RelativeLayout>