To include a group of items to be displayed in a scrollable list, the Android ListView is used. It is a view. By importing the android.widget.ListView class, the ListView is implemented. It does not use other scroll views as it is a default scrollable. The Adapter classes are used by the ListView to add the content from the data source to the ListView. The data source can be a string array, array, database, etc. The data between the AdapterViews and other Views like ListView, ScrollView, etc are bridged by the Adapter.
Example of ListView:
activity_main.xml:
In the activity_main.xml file, we will drag and drop the ListView component from the palette.
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="MainActivity"> <ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="fill_parent" tools:ignore="MissingConstraints" /> </android.support.constraint.ConstraintLayout> |
mylist.xml:
The view components displayed in the ListView are added in the mylist.xml file which is an additional file created in the layout folder.
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Medium Text" android:textStyle="bold" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_marginLeft="10dp" android:layout_marginTop="5dp" android:padding="2dp" android:textColor="#4d4d4d" /> |
strings.xml:
<resources> <string name="app_name">radioapp</string> <string-array name="alphabets"> <item>A</item> <item>B</item> <item>C</item> <item>D</item> <item>E</item> <item>F</item> <item>G</item> <item>H</item> <item>I</item> <item>J</item> <item>K</item> <item>L</item> <item>M</item> <item>N</item> <item>O</item> <item>P</item> <item>Q</item> <item>R</item> <item>S</item> <item>T</item> <item>U</item> <item>V</item> <item>W</item> <item>X</item> <item>Y</item> <item>Z</item> </string-array> </resources> |
Activity class:(File: MainActivity.java)
The setAdapter() method of the ListView is used in the MainActivity.java file to add the adapter to the Listview.
package com.example.radioapp; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { ListView listView; TextView textView; String[] listItem; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView=(ListView)findViewById(R.id.listView); textView=(TextView)findViewById(R.id.textView); listItem = getResources().getStringArray(R.array.alphabets); final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, listItem); listView.setAdapter(adapter); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) { // TODO Auto-generated method stub String value=adapter.getItem(position); Toast.makeText(getApplicationContext(),value,Toast.LENGTH_SHORT).show(); } }); } } |
Output 1:
Output 2: