Search code examples
androidandroid-layoutandroid-listview

How to add A TextView Dynamically in the ListView Items Android?


I want to add a TextView and Set it's value dynamically in the ListView and On click of the item i want to get the value of the item clicked .

I have a array

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

My TextView XML is

<?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>

My 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 how could i set those values in the array to the listview .i am new in android.Thanks


Solution

  • Use this code i hope this is what 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();
                  }
            });
    }