This tutorial shows how to display a String list in a Custom ListView.
Step 1: Create a new project with name ListViewExample and package name com.myexample.listview. Select File/New/New Project. Fill the forms and click “Finish” button.
Step 2: Open res/layout/xml (or) main.xml and add following code. Here we add a ListView mainListview1.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:ads="http://schemas.android.com/apk/res-auto" tools:context=".MainActivity" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ListView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/mainListview1"/> </LinearLayout>
Step 3: In res/layout/ directory add a new file list_item.xml and add following code. Here we add a TextView for displaying text.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_height="wrap_content" android:layout_width="match_parent" android:text="Large Text" android:id="@+id/listitemTextView1" android:padding="12dp" android:textSize="16sp" android:textColor="#000000"/> </LinearLayout>
Step 4: Open app/src/main/java/package and open MainActivity.java. Add following code in it. Here we create a String list and set an adapter to display this String list in ListView.
package com.myexample.listview; import android.app.*; import android.os.*; import android.view.*; import android.view.View.*; import android.widget.*; import java.util.*; import android.content.*; public class MainActivity extends Activity { private ListView listview1; private ArrayList<String> fruits = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); listview1 = findViewById(R.id.mainListview1); listview1.setOnItemClickListener(new AdapterView.OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> parent, View child, int pos, long _pos){ Toast.makeText(getApplicationContext(), fruits.get(pos), Toast.LENGTH_LONG).show(); } }); fruits.add("Mango"); fruits.add("Banana"); fruits.add("Apple"); fruits.add("Watermelon"); fruits.add("Guava"); fruits.add("Grapes"); fruits.add("Pineapple"); fruits.add("Litchi"); fruits.add("Cherry"); fruits.add("Kiwi"); fruits.add("Orange"); fruits.add("Muskmelon"); fruits.add("Papaya"); fruits.add("Palm"); fruits.add("Coconut"); MyAdapter adapter = new MyAdapter(this, fruits); listview1.setAdapter(adapter); } public class MyAdapter extends ArrayAdapter<String> { public MyAdapter(Context context, ArrayList<String> string_list) { super(context, 0, string_list); } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = LayoutInflater.from(getContext()).inflate(R.layout.list_item, parent, false); } parent.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)); TextView txtview = (TextView) convertView.findViewById(R.id.listitemTextView1); txtview.setText(fruits.get(position)); return convertView; } } }
Output:
Now run the app. The app will display String list in a ListView.