1) List view is used when we want to display a long list of items
2) The items can also be clickable
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//get list view from layout
ListView myListView = (ListView) findViewById(R.id.mylist);
//create List
final ArrayList<String> myFamily = new ArrayList<String>();
myFamily.add("A");
myFamily.add("B");
myFamily.add("C");
myFamily.add("D");
//bind list to listview
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,myFamily);
myListView.setAdapter(arrayAdapter);
//montior clicking on list items
myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//parent : whole list
//view : row of the list that was tapped
//position : array index of this element, starting from 0
//log what is tapped
Toast.makeText(MainActivity.this,myFamily.get(position),Toast.LENGTH_LONG).show();
// Log.i("Tapped",myFamily.get(position));
}
});
}
}
arrayAdapter.notifyDatasetChanged();
Create a new layout resource file with view for a single item.
Instantiate array adaptor pointing to this layout file
new ArrayAdapter<String>(this,R.layout.customitemview,array)
Eg, This is the source code for simple_list_item_1.xml. We can edit attributes from here..
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:gravity="center_vertical"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
android:minHeight="?android:attr/listPreferredItemHeightSmall" />
Usage example : See 21_Notes project