2010-09-14 3 views
2

ceci est ma méthode de getView:Android: Beaucoup Edittexts dans ListView

public View getView(final int position, View convertView, final ViewGroup parent) { 
     ViewHolder holder; 
     if(convertView == null){ 
      holder = new ViewHolder(); 
      convertView = inflater.inflate(R.layout.propviewlistrow, null); 
      holder.title = (TextView) convertView.findViewById(R.id.propviewlistrow_t1); 
      holder.content = (EditText) convertView.findViewById(R.id.propviewlistrow_e1); 
      convertView.setTag(holder); 
     } 
     else{ 
      holder = (ViewHolder)convertView.getTag(); 
     } 
     holder.title.setText(names.get(position)); 
     holder.content.setText(values.get(position));  
     holder.content.addTextChangedListener(new TextWatcher(){ 

      public void afterTextChanged(Editable s) {  
       values.set(position, s.toString()); 
      } 

      public void beforeTextChanged(CharSequence s, int start, 
        int count, int after) { 
      } 

      public void onTextChanged(CharSequence s, int start, 
        int before, int count) { 
        } 

     }); 
     return convertView; 
    } 
} 

Mais cela ne fonctionne pas. Les edittexts n'affichent pas le texte correct, le texte affiché change pendant le défilement. Le prochain problème est, j'ai mis android: windowSoftInputMode = "adjustPan" dans le manifeste. Si vous cliquez sur le dernier edittext, la liste ne défile pas suffisamment pour que vous puissiez voir ce que vous tapez.

Répondre

0

Désolé de ne pas répondre à votre question directement, mais si j'étais vous, je refaisais cette liste. Ce sera un PITA majeur pour l'utilisateur d'utiliser des champs d'édition dans la liste. Ce que je ferais - soit utiliser une action à long presse et faire une activité de dialogue ou de dialogue pour modifier ou utiliser modèle d'actions rapides

http://android-developers.blogspot.com/2010/05/twitter-for-android-closer-look-at.html