Android编辑ListView中的文本-键盘

Android编辑ListView中的文本-键盘,android,listview,android-edittext,Android,Listview,Android Edittext,我的编辑文本有问题。我使用以下适配器: public class RowTextViewAdapter extends BaseAdapter { ... public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (rowTitles.get(position).equals("edit")) { if(et ==

我的
编辑文本有问题。我使用以下适配器:

public class RowTextViewAdapter extends BaseAdapter {

...

  public View getView(int position, View convertView, ViewGroup parent) {

  ViewHolder holder = null;

    if (rowTitles.get(position).equals("edit")) {
        if(et == null){
            et = new EditText(activity);
            et.setText("Test");
        }
        return et;
    }
    else {
        convertView = new TextRow(activity);
        holder = new ViewHolder(((TextRow) convertView).getTextView(), ((TextRow) convertView).getImageView());
        convertView.setTag(holder);
        holder.getTextView().setText(StringManager.getInstance().getText(rowTitles.get(position), activity));
        holder.getImageView().setImageBitmap(assetController.getBitmap(additiveIcons.get(position) + ".png", null));
        return convertView;
    }
  }
}
列表活动

public class AppSettingActivity extends ListActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        adapter = new RowTextViewAdapter(this);
        adapter.addRowView("account", "arrowDw");
        adapter.addRowView("password", "arrowDw");
        setListAdapter(adapter);
   }

...

   protected void onListItemClick(ListView listView, View view, int position, long id) {
    switch (position) {
        case 0: accIsEditable = adapter.setEditable(position); break;
        case 1: 
            if(accIsEditable) {
                                    //TODO do something..
                break;
            }
            pwIsEditable = adapter.setEditable(position);
            break;
          ...
   }
}
如果我单击第一个项目,我会在位置1(位置:0、1、2,…)上添加一个新的列表项目。 现在,列表中添加了
EditText
字段

ListView:
----------------------------          -------------------------    
Account                   v           Account                ^     
----------------------------    ==>   -------------------------     
Passowrd                  v           [::::::::EditText:::::::]      
----------------------------          -------------------------
//more..                              Password               v
----------------------------          -------------------------
                                      //more..
                                      -------------------------
如果我现在点击
EditText
字段,它会显示虚拟键盘并失去
EditText
的焦点。我再次点击,它获得焦点。但是如果我写了什么,文本只会显示在
EditText
字段中,如果我在写的时候不经常点击它


有没有办法解决更新问题?

如果这仍然是一个问题,请查看以下项目:

这些变化可能会有所帮助

更改为listview:

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

更改为mainfest.xml中的活动:

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


有时,当您在清单活动或xml中使用android:WindowsOfInputMode=“StateAllwayShidden”
时,它将失去键盘焦点。因此,首先在xml和清单中检查该属性,如果它存在,就删除它。将这些选项添加到side activity
android:windowSoftInputMode=“adjustPan”
中的清单文件中,并将此属性添加到xml
android:genderantfocusability=“beforesands”

中的listview之后,这听起来非常像这个问题:希望它有帮助:-)嗯,我也遇到了这些焦点问题。我试过:
addTextChangedListener
->调试正确-显示正确的文本。但我不知道如何毫无例外地设置文本(
EditText.setText(“新侦听器文本”)
)。我还没有找到一种方法来重新设置编辑文本的焦点。我唯一能做的就是调用
getInstance().notifyDataSetChanged()
,但在那之后,我必须再次手动单击EditText字段,它只写一个字母。。使用
EditText.requestFocus()
时,键盘不会显示,EditText不再聚焦。奇怪的是:EditText中的光标没有闪烁。。。这就像编辑文本被冻结一样不能将EditText放入ListView。听起来您可以将listView替换为ScrollView中的LinearLayout!:汉克斯,但我没时间了所以。。。被拒绝的
android:windowSoftInputMode=“adjustPan”
对我来说一个人就可以了。太好了!多谢!我将不得不探索这些设置的作用,但我毫不怀疑,你刚刚为我节省了几个小时的跑步时间……非常感谢。现在我的listview终于可以正常工作了。我通过编程方式设置该值:
myActivity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT\u INPUT\u ADJUST\u PAN)。对我来说必须是下午茶。android:DegenantFocusability=“AfterDegenders”