Comment obtenir les valeurs de tous les EditText à l'intérieur d'une ListView

Je veux obtenir toutes les valeurs de tous les EditText éléments qui sont présents à l'intérieur de ma ListView.
C'est mon code :

final ListView editorList = (ListView) findViewById(R.id.editorList);
        final EditorAdapter adapter = new EditorAdapter(context, data);
        editorList.setAdapter(adapter);


        Button commitButton = (Button) findViewById(R.id.commit_button);
        commitButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                //TODO Auto-generated method stub
                try{
                    //System.out.println("Size of List : " + editorList.getChildCount());
                    for(int i =0;i< data.size() ;i++){
                        System.out.println("Size of List : " + data.size());

                        EditText value = adapter.getItem(i);
                        String propertyValue = value.getText().toString();
                        System.out.println("PropertyValue : " + propertyValue);


                    }
                } catch (Exception e){
                    e.printStackTrace();
                }
            }
        });

C'est ma classe d'Adaptateur :

package in.omerjerk.preferenceseditor;
public class EditorAdapter extends BaseAdapter {
Context context;
ArrayList<HashMap<String,String>> data;
EditText[] mHolders;
public EditorAdapter(Context context, ArrayList<HashMap<String,String>> data){
this.context = context;
this.data = data;
System.out.println("No . of items in nodes"+data.size());
mHolders = new EditText[data.size()];
}
@Override
public int getCount() {
//TODO Auto-generated method stub
return data.size();
}
@Override
public EditText getItem(int pos) {
//TODO Auto-generated method stub
return mHolders[pos];
}
@Override
public long getItemId(int pos) {
//TODO Auto-generated method stub
return pos;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//TODO Auto-generated method stub
ViewHolder holder;
if(convertView==null){
System.out.println("CONVERT VIEW IS NULL");
holder = new ViewHolder();
convertView = LayoutInflater.from(context).inflate(R.layout.row_edit_string,null,false);
holder.editPropertyValue = (EditText) convertView.findViewById(R.id.propertyValue);
holder.propertyName = (TextView) convertView.findViewById(R.id.propertyName);
holder.propertyName.setText(data.get(position).get("propertyName"));
holder.editPropertyValue.setText(data.get(position).get("propertyName"));
convertView.setTag(holder);
}else{
System.out.println("CONVERT VIEW NOT NULL");
holder = (ViewHolder) convertView.getTag();
holder.propertyName.setText(data.get(position).get("propertyName"));
holder.editPropertyValue.setText(data.get(position).get("propertyName"));
convertView.setTag(holder);
mHolders[position] = new EditText(context);
mHolders[position] = holder.editPropertyValue;
}
return convertView;
}
}

Je suis étrange erreur de ma sortie. Le mHolders tableau uniquement contenir jusqu'à 6 à 7 éléments et ces éléments sont repris dans le tableau d'ensemble. Je suis en mesure d'obtenir les valeurs de EditText mais l'erreur n'est pas correct.

post XML de mise en page, merci
Post EditorAdapter ainsi
J'ai mis à jour le code.
Vous êtes à la création d'un nouveau View chaque fois getView est appelé, ce qui est très mauvais et le mal. Et aussi votre code ne suivez pas ViewHolder modèle. Merci de corriger votre adaptateur. Beaucoup de tutoriels sont disponibles sur ce sujet, javacodegeeks.com/2013/09/...
les valeurs que vous essayez d'obtenir, sont sur la carte ou sont entrés par l'utilisateur?

OriginalL'auteur omerjerk | 2013-10-06