Android ListView with Adapter
In Android development, any time we want to show a vertical list of scrollable items we will use a
ListView which has data populated using an Adapter. The simplest adapter to use is called an ArrayAdapter because the adapter converts an ArrayList of objects into View items loaded into the ListView container.![]() | |
| ListView with Adapter conceptual Diagram. |
ArrayAdapter fits in between an ArrayList (data source) and the ListView (visual representation) and configures two aspects:- Which array to use as the data source for the list
- How to convert any given item in the array into a corresponding View object.
Using a Basic ArrayAdapter
To use a basic
ArrayAdapter, you just need to initialize the adapter and attach the adapter to the ListView. First, we initialize the adapter:ArrayAdapter<String> itemsAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data);
The
ArrayAdapter requires a declaration of the type of the item to be converted to a View (a String in this case) and then accepts three arguments: context (activity instance), XML item layout, and the array of data. Note that we've chosen simple_list_item_1.xml which is a simple TextView as the layout for each of the items.Now, we just need to connect this adapter to a
ListView to be populated:ListView lv= (ListView) findViewById(R.id.listview1);
lv.setAdapter(itemsAdapter);
Example:
activity_main.xml
<ListViewandroid:id="@+id/listview1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >
</ListView>
MainActivity.java
public class MainActivity extends ActionBarActivity {ListView lv;
String[] data = new String[]{"Nokia","Samsung","LG","Micromax","iPhone","Nexus s","Karbone","Lava","Geonie"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView)findViewById(R.id.listview1);
ArrayAdapter<String> itemsAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1,data);
lv.setAdapter(itemsAdapter);
}

No comments:
Post a Comment