如何在android中使用基本适配器在自定义listview中获取数组列表中的所有编辑文本值

如何在android中使用基本适配器在自定义listview中获取数组列表中的所有编辑文本值,android,android-listview,Android,Android Listview,我通过url从服务器数据库获取所有菜单,我使用基本适配器将所有菜单附加到EditText自定义listview中。现在我将Edittext更改后的值放入列表数组。现在我想存储Edittext所有值,无论他是否更改菜单名。例如:x,yz。。。来自数据库的菜单附加到editext现在我在editext中将菜单y更改为b,将菜单z更改为c。现在我想要arraylist中的[x,b.c..]值,但现在我得到了b,c this is my code public

我通过url从服务器数据库获取所有菜单,我使用基本适配器将所有菜单附加到EditText自定义listview中。现在我将Edittext更改后的值放入列表数组。现在我想存储Edittext所有值,无论他是否更改菜单名。例如:x,yz。。。来自数据库的菜单附加到editext现在我在editext中将菜单y更改为b,将菜单z更改为c。现在我想要arraylist中的[x,b.c..]值,但现在我得到了b,c

          this is my code
            public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;


    if (convertView == null) {
        holder = new ViewHolder();
        convertView = inflater.inflate(R.layout.editmainmenulist, null);
        holder.caption = (EditText) convertView
                .findViewById(R.id.editmaimenu);
        holder.caption1=(ImageView) convertView.findViewById(R.id.menuimage);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }
    //Fill EditText with the value you have in data source
    holder.caption.setText(itemnames[position]);//here only i append database menunames
    holder.caption.setId(position);
    holder.caption1.setImageBitmap(bmps[position]);

    //we need to update adapter once we finish with editing
    holder.caption.setOnFocusChangeListener(new OnFocusChangeListener() {
        public void onFocusChange(View v, boolean hasFocus) {
            if (!hasFocus){
                final int position = v.getId();
                final EditText Caption = (EditText) v;
                itemnames[position] = Caption.getText().toString();

                arr.add(Caption.getText().toString());//here only i think problem..please see any body can tell what i have mistake has been done


            }
        }    
    });     

    return convertView;
}
      }

           class ViewHolder {
EditText caption;
ImageView caption1;
      }

    class ListItem {
String caption;
     }
我想要所有的edittext值,无论edittext值是否更改。为更新目的。
我可以把所有的菜单都放在前面。我想将旧菜单更新为新菜单

TextChangedListener
添加到
getView()中的
EditText

代码:

holder.caption.addTextChangedListener(new TextWatcher()
{           
  @Override
   public void onTextChanged(CharSequence s, int start, int before, int count)
    {
     // TODO Auto-generated method stub         
    }           
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after)
    {
     // TODO Auto-generated method stub
     }
    @Override
    public void afterTextChanged(Editable s)
    {
    // TODO Auto-generated method stub
    String data =  holder.caption.getText().toString().trim();
    }
});

现在,在需要时从edittext获取数据,ContextChanged、beforeTextChanged或beforeTextChanged..

被弄糊涂了…你到底有什么问题?例如:在我的edittext中包含x、y、z。我在edittext中将值y更改为b。现在我想在arraylist中获取x、b、z。现在你是否了解我的问题,我使用上述方法。我在更改文本之前获取。例如:xyz菜单来自数据库附加到edittext。现在我无法更改菜单,因为我想在数组列表中获取x、y、z。如果我将edittext vlaue y更改为b menas,我希望在ArrayListal中获得x,b.z,这样您就可以使用@Override public void onTextChanged(CharSequence s,int start,int before,int count){String data=s.toString()}