【问题标题】:Is this is OK to use the ListView for inline editing?可以使用 ListView 进行内联编辑吗?
【发布时间】:2012-01-25 09:51:26
【问题描述】:

编辑:

I can't write into the EditText,当我尝试写入时它消失了 某事,这是因为当我修改数据时调用了 getView()

我需要从 SQLite 加载一些数据并将其列在 ListView 或 Grid 中。接下来是提供内联编辑功能,即用户也可以在 ListView OR 网格中编辑数据。

目前我正在为此目的使用 ListView。我所做的是我已经为行项目定义了布局,下面提供了示例 xml:

rowitem.xml

   <TableRow
       android:id="@+id/tableRow1"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:weightSum="1">

       <TextView 
            android:text="" 
            android:id="@+id/txtQuestionId" 
            android:layout_width="100dp" 
            android:layout_height="50dp"
            android:clickable="true"
            android:padding="5dip"
            android:gravity="left"
            android:background="@android:color/transparent"/>        


       <EditText 
            android:text="" 
            android:id="@+id/txtQuestion" 
            android:layout_width="400dp" 
            android:layout_height="50dp"
            android:clickable="true"
            android:padding="3dip"
            android:gravity="left"
            />



        <TextView 
            android:text="" 
            android:id="@+id/txtStandard" 
            android:layout_width="200dp" 
            android:layout_height="50dp"
            android:padding="5dip"
            android:gravity="left"/>

        <RadioGroup android:id="@+id/rdbStatus"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal" android:weightSum="1">
            <RadioButton android:id="@+id/rbSAT" 
                        android:layout_width="wrap_content" android:text="SAT" 
                        android:layout_height="wrap_content"
                        android:onClick="onStatusClicked"/>
            <RadioButton android:id="@+id/rbUNSAT" 
                        android:layout_width="wrap_content" android:text="UNSAT" 
                        android:layout_height="wrap_content"
                        android:onClick="onStatusClicked"/>
            <RadioButton android:id="@+id/rbNA"     
                        android:layout_width="wrap_content" android:text="NA" 
                        android:layout_height="wrap_content"  
                        android:onClick="onStatusClicked"/> 
        </RadioGroup>       


  </TableRow>

        <!-- just draw a red line -->
    <View
        android:layout_height="2dip"
        android:background="#FF0000" />   

</TableLayout>

我从 SQLite 获取数据并使用自定义 DataAdapter 类将数据与 ListView 绑定。

我有几个问题:

1- android 内联编辑的最佳做法是什么?

2- 内联编辑 ListView OR Grid 的最佳选择是什么?

3- 使用 ListView 进行内联编辑有什么好处和好处?

非常感谢。

【问题讨论】:

  • 目前它只是内联编辑,数据被加载到 EditText 中,用户可以在那里编辑它。你能指导我如何在 TextView 中显示数据但可以在 EditText 中编辑它吗?谢谢

标签: android grid android-listview inline-editing


【解决方案1】:

好吧,这是我的个人意见..如果你喜欢就试试吧..

  1. 从数据库中填充列表中的数据。 (布局中不需要EditText)。

  2. 使用 Edittext 创建一个对话框。现在,当用户单击 ListItem 时,打开该对话框,其中包含当前选定列表行 textview 中的预填充文本。然后允许用户更改它。当用户在对话框上单击确定时,然后在列表项中修改该 Textview ..

【讨论】:

  • +1 为这个好主意。但实际上我受到客户要求的约束,即内联编辑。
【解决方案2】:

为什么不呢?这对用户来说绝对是好事,但开发起来有点棘手。

  • 您的列表条目布局必须提供文本编辑(可能不可见)并在单击文本视图时切换到它。这个文本视图应该有合适的监听器在父布局等中跟踪。
  • 您必须在 textedit 失去焦点/即将被列表视图回收以在滚动时重复使用时保存数据。

【讨论】:

    【解决方案3】:

    @yaqub 使用 EditorActionListener 和 imeOptions="actionDone" 喜欢

    1. 为列表中的edittext 设置android:imeOptions="actionDone" 属性。
    2. 使用editText.setOnEditorActionListener(onEditorActionListener)
    3. track if(actionId == EditorInfo.IME_ACTION_DONE) {//在这里执行您的操作}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-18
      • 1970-01-01
      • 1970-01-01
      • 2015-11-09
      • 2016-01-01
      • 2020-11-25
      相关资源
      最近更新 更多