This is a simple ListView tutorial.Here is what we do:
- Fill ListView with data from a simple ArrayList.
- We use ArrayAdapter.
- Handle ItemClicks.
Our MainActivity
This is our MainActivity class.
package com.tutorials.hp.listviewarraylist; 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.Toast; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { ArrayList<String> numbers=new ArrayList<>(); ListView lv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv = (ListView) findViewById(R.id.lv); //FILL DATA fillData(); //ADAPTER ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, numbers); lv.setAdapter(adapter); //LISTENER lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { Toast.makeText(MainActivity.this, numbers.get(i), Toast.LENGTH_SHORT).show(); } }); } //FILL DATA private void fillData() { for (int i=0;i<10;i++) { numbers.add("Number "+String.valueOf(i)); } } }
Our XML Layout
Our activity’s layout is here.
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout android_layout_width="match_parent" android_layout_height="match_parent" android_paddingBottom="@dimen/activity_vertical_margin" android_paddingLeft="@dimen/activity_horizontal_margin" android_paddingRight="@dimen/activity_horizontal_margin" android_paddingTop="@dimen/activity_vertical_margin" tools_context="com.tutorials.hp.listviewarraylist.MainActivity"> <ListView android_id="@+id/lv" android_layout_width="match_parent" android_layout_height="wrap_content" /> </RelativeLayout>
Good day.