Friday 18 November 2011

ListView Example


import android.app.Activity;
import android.content.DialogInterface;
import android.content.DialogInterface.OnMultiChoiceClickListener;
import android.os.Bundle;
import android.util.SparseBooleanArray;
import android.view.View;
import android.widget.AbsListView.OnScrollListener;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AbsListView;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class TestPreprationActivity extends Activity implements
OnItemClickListener, OnMultiChoiceClickListener {

static final String[] COUNTRIES = new String[] { "Afghanistan", "Albania",
"Algeria", "American Samoa", "Andorra", "Angola", "Anguilla",
"Antarctica", "Antigua and Barbuda", "Argentina", "Armenia",
"Aruba", "Australia", "Austria", "Azerbaijan", "Bahrain",
"Bangladesh", "Barbados", "Belarus", "Belgium", "Belize", "Benin",
"Bermuda", "Bhutan", "Bolivia", "Bosnia and Herzegovina",
"Botswana", "Bouvet Island", "Brazil",
"British Indian Ocean Territory", "British Virgin Islands",
"Brunei", "Bulgaria", "Burkina Faso", "Burundi", "Cote d'Ivoire",
"Cambodia", "Cameroon", "Canada", "Cape Verde", "Cayman Islands",
"Central African Republic", "Chad", "Chile", "China",
"Christmas Island", "Cocos (Keeling) Islands", "Colombia",
"Comoros", "Congo", "Cook Islands", "Costa Rica", "Croatia",
"Cuba", "Cyprus", "Czech Republic",
"Democratic Republic of the Congo", "Denmark", "Djibouti",
"Dominica", "Dominican Republic", "East Timor", "Ecuador", "Egypt",
"El Salvador", "Equatorial Guinea", "Eritrea", "Estonia",
"Ethiopia", "Faeroe Islands", "Falkland Islands", "Fiji",
"Finland", "Former Yugoslav Republic of Macedonia", "France",
"French Guiana", "French Polynesia", "French Southern Territories",
"Gabon", "Georgia", "Germany", "Ghana", "Gibraltar", "Greece",
"Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala",
"Guinea", "Guinea-Bissau", "Guyana", };

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ListView listView = new ListView(this);

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_multiple_choice, COUNTRIES);
// adapter.setDropDownViewResource(android.R.layout.select_dialog_multichoice);
listView.setAdapter(adapter);
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
listView.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {

//Toast.makeText(TestPreprationActivity.this, "" + listView.getItemAtPosition(arg2),Toast.LENGTH_SHORT).show();

}

});

listView.setOnScrollListener(new OnScrollListener() {

@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {

if(scrollState==SCROLL_STATE_FLING){
Toast.makeText(TestPreprationActivity.this,
"Fling",
Toast.LENGTH_SHORT).show();
}else if(scrollState==SCROLL_STATE_IDLE){
Toast.makeText(TestPreprationActivity.this,
"Idle",
Toast.LENGTH_SHORT).show();
}else if(scrollState==SCROLL_STATE_TOUCH_SCROLL){
Toast.makeText(TestPreprationActivity.this,
"touch",
Toast.LENGTH_SHORT).show();
}
}

@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
//listView.setItemChecked(firstVisibleItem,true);
for(int i=firstVisibleItem;i<firstVisibleItem+visibleItemCount;i++){
listView.setItemChecked(i,true);
//listView.setItemChecked((firstVisibleItem+5),false);
}


SparseBooleanArray spars=listView.getCheckedItemPositions();
spars.size();
String str="";
for(int i=0;i<spars.size();i++){
str+="\n"+COUNTRIES[spars.keyAt(i)];
}

}
});
// listView.addHeaderView((View)(new TextView(this).setText("Header")));
setContentView(listView);
}

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {

}

@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {

}
}

http://ykyuen.wordpress.com/2010/01/03/android-simple-listview-using-simpleadapter/