Friday, December 27, 2013

Creating List in Android


1) Create layout with List view and Textview for empty text. set id to @android:id/list & @android:id/empty

eg: activity_list_test.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   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=".ListTestActivity" >
   
   <ListView
       android:headerDividersEnabled="true"        
       android:id="@android:id/list"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       />

   <TextView
       android:id="@android:id/empty"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:gravity="center"
       android:text="@string/listempty" />
</RelativeLayout>



2) Create Activity extending ListActivity
package com.test.list;

import com.test.R;
import com.test.R.id;
import com.test.R.layout;
import com.test.R.menu;

import android.os.Bundle;
import android.app.ListActivity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.content.Context;

public class ListTestActivity extends ListActivity {
public String todos[] = new String[]{"todo1", "todo2", "todo3", "todo4", "todo5","todo6", "todo7", "todo8", "todo9", "todo10"};
ArrayAdapter<String> adapter;
ListView lv;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//set listview layout
setContentView(R.layout.activity_list_test);
lv = getListView();
//Adding header for the list
RelativeLayout layout = (RelativeLayout) getLayoutInflater().inflate(R.layout.list_item, null);
TextView v  = (TextView) layout.findViewById(R.id.listitem);
v.setText("Name");
lv.addHeaderView(layout);
//setting adapter for the list
adapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.listitem, todos);
setListAdapter(adapter);
}
//Action called when list item is selected
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Log.d("onListItemClick", "position "+ position +" id "+ id);
super.onListItemClick(l, v, position, id);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.list_test, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}

}

No comments:

Post a Comment