2016-09-24 2 views
1

So erhalten Sie die Werte aus dem Bearbeitungstext.Wie man Textwert von Listview erhält Edit Text feild .....?

Hallo allerseits ich habe ein Problem mit Android-Aufgabe, in der es so viele bearbeiten Text im Text bearbeiten.

enter image description here

ich brauche die Werte von 1 bis 4 alle bearbeiten Texte zu bekommen ..? Unten ist meine Ansicht Methode von Adapter.

@Override 
    public View getView(final int position, View convertView, ViewGroup parent) { 
     final ViewHolder holder; 
     if (convertView == null) { 

      convertView = LayoutInflater.from(getContext()).inflate(R.layout.social_media_row, null); 

      holder = new ViewHolder(); 

      holder.social_id = (EditText) convertView.findViewById(R.id.socialMediaId); 

      convertView.setTag(holder); 

      holder.social_id.addTextChangedListener(new TextWatcher() { 
       @Override 
       public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
       } 
       @Override 
       public void onTextChanged(CharSequence s, int start, int before, int count) { 
       } 
       @Override 
       public void afterTextChanged(Editable s) { 
        Log.i("AfterTextChange",holder.social_id.getText().toString()); 
       } 
      }); 
     } else { 
      holder = (ViewHolder) convertView.getTag(); 
     } 

     SocialMediaModel contact = contactsList.get(position); 

     holder.social_id.setText(contact.getSocialMediaId()); 

     holder.social_id.setTag(contact); 
     return convertView; 
    } 

Update: Ich möchte die Werte erhalten, wenn Benutzer klicken Sie auf die Schaltfläche

savebtn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

    /here what i can do  


      } 
     }); 
+0

Haben Sie einen Knopf in Ihrem Adapter? – sushildlh

+0

wenn Sie Werte erhalten möchten ?? irgendeine Taste Click Event? –

+0

ja Schaltfläche Gibt es eine Speichern-Schaltfläche Verfügbar – sunny

Antwort

0

Sie ein Verfahren wie dieses für jede EditText mit der Listenposition als Parameter implementieren können:

public String getValueFromFirstEditText(int position){ 
     //here you need to recreate the id for the first editText 
    String result = textValues.get("theFirstEditTextAtPos:"+position); 
    if(result ==null) 
      result = "default value"; 
return result; 

}

+0

kannst du deine Antwort mit meinem Code aktualisieren ..? – sunny

1
 //at top Globally declare it 
     private String[] valueList = new String[]; 

     @Override 
     public View getView(final int position, View convertView, ViewGroup parent) { 
        final ViewHolder holder; 
        if (convertView == null) { 

         convertView = LayoutInflater.from(getContext()).inflate(R.layout.social_media_row, null); 

         holder = new ViewHolder(); 

         holder.social_id = (EditText) convertView.findViewById(R.id.socialMediaId); 

         convertView.setTag(holder); 

         holder.social_id.addTextChangedListener(new TextWatcher() { 
          @Override 
          public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
          } 
          @Override 
          public void onTextChanged(CharSequence s, int start, int before, int count) { 

         valueList[pos] = s.toString(); 

          } 
          @Override 
          public void afterTextChanged(Editable s) { 
           Log.i("AfterTextChange",holder.social_id.getText().toString()); 
          } 
         }); 
        } else { 
         holder = (ViewHolder) convertView.getTag(); 
        } 

        SocialMediaModel contact = contactsList.get(position); 

        holder.social_id.setText(contact.getSocialMediaId()); 

        holder.social_id.setTag(contact); 
        return convertView; 
       } 

// method to get Values 
public String[] getValueList(){ 
     return valueList; 
    } 

Jetzt auf die Schaltfläche Click-Ereignis diesen Code setzen

String[] myvl = yourAdapteName.getValueList(); 
+0

nicht die richtigen Werte – sunny

+0

@sunny: Ich habe ein kleines Update mit dem vorherigen. Würden Sie es bitte noch einmal versuchen? –

+0

ok bro ich wl versuchen – sunny

0

ich diesen Code Hilfe hoffen, dass Sie

USE Adapter Zellenposition

folgen diesen Code

in getView (in Adapter Class)

edittext.getText().toString(); 
+0

erklären mehr .. bitte – sunny

+0

verwenden Sie benutzerdefinierte Adapter? –

+0

ja bro ........ – sunny

0

Declare dies in Ihrer Erklärung

protected AdapterView.OnItemClickListener messageClickedHandler; 

Click-Ereignis für die Listenansicht mit Adapter Ansicht

messageClickedHandler = new AdapterView.OnItemClickListener() { 
      public void onItemClick(AdapterView parent, View view, int position, long id) { 
      String strName=rowItems.get(position).getStrName(); 
      Toast.makeText(getApplicationContext(),"Name : "+strName , Toast.LENGTH_LONG).show(); 
      } 
     }; 
     list.setOnItemClickListener(messageClickedHandler); 
    } 

rowItems ist ein Array Liste Objekt, getStrName() aus der benutzerdefinierten Klasse.

+0

, wie es funktioniert ...? – sunny

+0

Sehen Sie diese http://Stackoverflow.com/a/39659915/6798867, kann es Ihnen helfen @sunny –

+0

das ist nicht mit meiner Frage bro verbunden – sunny

Verwandte Themen