2012-01-25 39 views
1

编辑:这可以使用ListView进行内联编辑吗?

I can't write into the EditText,它消失时,我尝试写 的东西,它是因为getView()当我修改数据被称为

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

目前我正在使用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 - 什么是内联Editiing的ListView或网格的最佳选择?

3什么是专业&使用ListView进行内联编辑的硬币?

非常感谢。

+0

目前它只是在线编辑数据中的EditText和加载用户可以在那里编辑它。你能指导我如何在TextView中显示数据,但可以在EditText中编辑它?谢谢 –

回答

3

好,它的我个人的看法..尝试,如果你喜欢它..

  1. 在名单与数据库中填充数据。 (在布局中不需要EditText)。

  2. 使用Edittext进行对话。现在,当用户单击ListItem时,从当前选定列表行textview中打开具有预填充文本的对话框。然后允许用户改变它。当用户在对话框中单击确定,然后修改该列表项中的Textview ..

+1

+1这个好主意。但实际上,我受到INLINE编辑的客户要求的约束。 –

1

为什么不呢?这对用户来说肯定很好,但开发有点棘手。

  • 您的列表输入布局必须提供文本编辑(可能不可见),并在点击文本视图时切换到它。这个文本视图应该有适合听者在父级布局等中保持轨迹。
  • 你必须在文件被释放后立即保存数据,因为失去焦点/即将被列表视图回收以便在滚动中重用。
0

@yaqub使用EditorActionListener与imeOptions = “actionDone” 像

  1. 设置了android:imeOptions = “actionDone” 属性的EditText这是存在的列表中。
  2. 使用editText.setOnEditorActionListener(onEditorActionListener)
  3. 轨道,如果(actionId == EditorInfo.IME_ACTION_DONE){//在这里做你的行动}
相关问题