2013-08-14 17 views
6

Desidero aggiungere una TextView e impostarne il valore in modo dinamico in ListView e al clic dell'elemento per ottenere il valore dell'elemento su cui si fa clic.Come aggiungere un TextView dinamicamente negli oggetti ListView Android?

Ho un array di

String[] statesList = {"listItem 1", "listItem 2", "listItem 3"}; 

mio TextView XML è

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="10dp" 
    android:textSize="16sp" 
    android:textStyle="bold" 
    > 
</TextView> 

mio ListView XML

<ListView 
      android:id="@+id/list" 
      android:choiceMode="singleChoice" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="5dp" 
      android:layout_marginTop="10dp" 
      android:layout_width="290dp"/> 

Please help me come potrei impostare i valori in la matrice per l'elenco w .i nuovo in android.Thanks

+0

ogni riga con un unico TextView ? – Raghunandan

+0

yup ogni elemento avrà solo una vista testo che ha il testo dall'array –

+0

Invece di aggiungere più textview ogni volta, è una cattiva pratica e consuma molta memoria. Basta usare una singola textview e aggiungere '\ n' al' testo' ogni volta che si desidera aggiungere una nuova vista testo. Spero che questo ti aiuti. – user2652394

risposta

2

Usa questo codice Spero che questo è ciò che u want

public void showstatesList() { 
     listView = (ListView) findViewById(R.id.list); 
     String[] statesList = {"listItem 1", "listItem 2", "listItem 3"}; 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
        android.R.layout.simple_list_item_1, android.R.id.text1, statesList); 
     listView.setAdapter(adapter); 
     listView.setOnItemClickListener(new OnItemClickListener() { 
       @Override 
       public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 
       int itemPosition  = position; 
       String itemValue = (String) listView.getItemAtPosition(position); 

//    Toast.makeText(getApplicationContext(), 
//    "Position :"+itemPosition+" ListItem : " +itemValue , Toast.LENGTH_LONG) 
//    .show(); 
       } 
     }); 
} 
+0

grazie ho ottenuto la soluzione. .. !!!!! –

1

Spero che questo vi aiuterà a ..

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.TextView; 

public class MainActivity extends Activity { 
    TextView tv; 
    ListView lv; 
     String s=""; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     tv=(TextView) findViewById(R.id.textView1); 
     lv=(ListView) findViewById(R.id.listView1); 

     String value[]={"asda","Ansar","Nisam"}; 
     ArrayAdapter<String>adapter=new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_list_item_1,android.R.id.text1,value); 
     lv.setAdapter(adapter); 
//list item click 
      lv.setOnItemClickListener(new OnItemClickListener() { 

       @Override 
       public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
         long arg3) { 
        s=s+("\n")+((String) lv.getItemAtPosition(arg2)); 
        tv.setText(s); 
       } 

      }); 

    } 
Problemi correlati