2013-02-12 14 views
8

Ho cercato di ottenere risposta da diverse domande simili qui ma non ho avuto risposta. In realtà sto cercando di ottenere valori da più visualizzazioni di testo di qualsiasi articolo listview. Questo è il codice
ListView listView = getListView();Come ottenere i valori di TextView da una listaElementi?

listView.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int postion, long id) {    
     String contactId = ((TextView) findViewById(R.id.cid)).getText().toString(); 
     String contactName= ((TextView) findViewById(R.id.contactName)).getText().toString(); 
     String contactNo= ((TextView) findViewById(R.id.contactNo)).getText().toString(); 
     Intent i = new Intent(getApplicationContext(), editContactActivity.class); 
     i.putExtra(TAG_ID, contactId); 
     i.putExtra(TAG_NAME, contactName); 
     i.putExtra(TAG_CONTACT_NO, contactNo); 
     startActivityForResult(i, 100);  
    } 
}); 

Che risultato mi sto, io sono sempre textviews valore della prima voce (posizione) in ListView, né sto clic su qualsiasi oggetto, ma sto ottenendo il valore textviews del primo elemento (posizione) in ListView, Qui è il codice come sto ottenendo valori su altre attività

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.edit_contact); 

    btnSave = (Button) findViewById(R.id.btnSaveContact); 
    btnDelete = (Button) findViewById(R.id.btnDeleteContact); 

    Intent i = getIntent(); 
    cId = i.getStringExtra(TAG_CONTACT_ID); 
    cNameTxt = i.getStringExtra(TAG_CONTACT_NAME); 
    cNumberTxt = i.getStringExtra(TAG_CONTACT_NUMBER); 

    //Log.d("Value of contact name", cNameTxt); 
    //Log.d("Value of contact name", cNumberTxt); 


    TextView contactIdTxtView = (TextView) findViewById(R.id.cid); 
    cName = (EditText) findViewById(R.id.editCName); 
    cNumber = (EditText) findViewById(R.id.editCNumber); 


    cName.setText(cId); 
    cNumber.setText(cNumberTxt); 

} 

sarò molto grato se qualcuno vi aiuterà in dettaglio Grazie Regard Akmal Rasool

risposta

35

sto ottenendo textviews valore della prima voce (posizione) in ListView

Ogni volta che si utilizza findViewById() dirgli di guardare in questa riga solo:

(TextView) view.findViewById(R.id.cid) 
//Add this ^^^^^ 

Tutti insieme :

@Override 
public void onItemClick(AdapterView<?> parent, View view, int postion, long id) { 
    String contactId = ((TextView) view.findViewById(R.id.cid)).getText().toString(); 
    //    Again use view ^^^^^ 
    // Repeat this for contactName and contactNo 
+6

Bundle di ringraziamento Sam –

0

to obtai n il valore textView, prova questo.

@Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      TextView text = (TextView)view.findViewById(R.id.correoEncuestador); 
      String message= text.getText().toString(); 
      Toast.makeText(getApplication(), message, Toast.LENGTH_LONG).show(); 
     } 
    } 
-1
View parentView = (View) view.getParent(); 
    textview1 = ((TextView) parentView 
      .findViewById(R.id.textview1)).getText().toString(); 

    textview2 = ((TextView) parentView 
      .findViewById(R.id.textview2)).getText().toString(); 

    textview3 = ((TextView) parentView 
      .findViewById(R.id.textview3)).getText().toString(); 
Problemi correlati