I want to use customListView .. "list_row.xml" contains each row format ..."bday_select.xml" contains the listView .... each row in listView contains String gender , String name , String lastSeen , int rating , int event , boolean selected
LogCat
04-09 03:37:38.927: D/AndroidRuntime(2435): Shutting down VM
04-09 03:37:38.927: W/dalvikvm(2435): threadid=1: thread exiting with uncaught exception (group=0xb4af4b90)
04-09 03:37:38.997: E/AndroidRuntime(2435): FATAL EXCEPTION: main
04-09 03:37:38.997: E/AndroidRuntime(2435): Process: com.example.mark, PID: 2435
04-09 03:37:38.997: E/AndroidRuntime(2435): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mark/com.example.mark.BdaySelect}: java.lang.NullPointerException
04-09 03:37:38.997: E/AndroidRuntime(2435): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176)
04-09 03:37:38.997: E/AndroidRuntime(2435): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)
04-09 03:37:38.997: E/AndroidRuntime(2435): at android.app.ActivityThread.access$700(ActivityThread.java:135)
04-09 03:37:38.997: E/AndroidRuntime(2435): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)
04-09 03:37:38.997: E/AndroidRuntime(2435): at android.os.Handler.dispatchMessage(Handler.java:102)
04-09 03:37:38.997: E/AndroidRuntime(2435): at android.os.Looper.loop(Looper.java:137)
04-09 03:37:38.997: E/AndroidRuntime(2435): at android.app.ActivityThread.main(ActivityThread.java:4998)
04-09 03:37:38.997: E/AndroidRuntime(2435): at java.lang.reflect.Method.invokeNative(Native Method)
04-09 03:37:38.997: E/AndroidRuntime(2435): at java.lang.reflect.Method.invoke(Method.java:515)
04-09 03:37:38.997: E/AndroidRuntime(2435): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
04-09 03:37:38.997: E/AndroidRuntime(2435): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
04-09 03:37:38.997: E/AndroidRuntime(2435): at dalvik.system.NativeStart.main(Native Method)
04-09 03:37:38.997: E/AndroidRuntime(2435): Caused by: java.lang.NullPointerException
04-09 03:37:38.997: E/AndroidRuntime(2435): at com.example.mark.BdaySelect.displayListView(BdaySelect.java:84)
04-09 03:37:38.997: E/AndroidRuntime(2435): at com.example.mark.BdaySelect.onCreate(BdaySelect.java:50)
bdaySelect.java
public class BdaySelect extends Activity {
MyCustomAdapter dataAdapter = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Generate list View from ArrayList
displayListView();
checkButtonClick();
}
private void displayListView() {
// Array list of countries
ArrayList<BdaySelectListRow> stateList = new ArrayList<BdaySelectListRow>();
BdaySelectListRow _BdaySelectListRow = new BdaySelectListRow("Ravi", "Male", "7 Aug",4,false,2);
stateList.add(_BdaySelectListRow);
_BdaySelectListRow = new BdaySelectListRow("Ravi", "Male", "7 Aug",4,false,2);
stateList.add(_BdaySelectListRow);
_BdaySelectListRow = new BdaySelectListRow("Div", "Male", "4 Aug",2,false,2);
stateList.add(_BdaySelectListRow);
_BdaySelectListRow = new BdaySelectListRow("Hari", "Male", "1 Aug",1,false,2);
stateList.add(_BdaySelectListRow);
_BdaySelectListRow = new BdaySelectListRow("Suu", "Male", "3 Aug",5,false,2);
stateList.add(_BdaySelectListRow);
_BdaySelectListRow = new BdaySelectListRow("Dhaka", "Male", "5 Aug",0,false,2);
stateList.add(_BdaySelectListRow);
_BdaySelectListRow = new BdaySelectListRow("Chu", "Male", "8 Aug",4,false,2);
stateList.add(_BdaySelectListRow);
_BdaySelectListRow = new BdaySelectListRow("Nikita", "Female", "9 Aug",4,false,2);
stateList.add(_BdaySelectListRow);
_BdaySelectListRow = new BdaySelectListRow("Ravi Ranjan", "Male", "0 Aug",4,false,2);
stateList.add(_BdaySelectListRow);
// create an ArrayAdaptar from the String Array
dataAdapter = new MyCustomAdapter(this, R.layout.list_row, stateList);
ListView listView = (ListView) findViewById(R.id.listView1);
// Assign adapter to ListView
listView.setAdapter(dataAdapter);
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
BdaySelectListRow state = (BdaySelectListRow) parent.getItemAtPosition(position);
Toast.makeText(getApplicationContext(),
"Clicked on : " + state.getName(), Toast.LENGTH_LONG)
.show();
}
});
}
private class MyCustomAdapter extends ArrayAdapter<BdaySelectListRow> {
private ArrayList<BdaySelectListRow> stateList;
public MyCustomAdapter(Context context, int textViewResourceId,
ArrayList<BdaySelectListRow> stateList) {
super(context, textViewResourceId, stateList);
this.stateList = new ArrayList<BdaySelectListRow>();
this.stateList.addAll(stateList);
}
private class ViewHolder {
TextView gender;
TextView lastseen;
CheckBox name;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
Log.v("ConvertView", String.valueOf(position));
if (convertView == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = vi.inflate(R.layout.list_row, null);
holder = new ViewHolder();
holder.gender = (TextView) convertView.findViewById(R.id.gender);
holder.lastseen = (TextView) convertView.findViewById(R.id.lastSeen);
holder.name = (CheckBox) convertView
.findViewById(R.id.checkBox1);
convertView.setTag(holder);
holder.name.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
CheckBox cb = (CheckBox) v;
BdaySelectListRow _state = (BdaySelectListRow) cb.getTag();
Toast.makeText(
getApplicationContext(),
"Checkbox: " + cb.getText() + " -> "
+ cb.isChecked(), Toast.LENGTH_LONG)
.show();
_state.setSelected(cb.isChecked());
}
});
} else {
holder = (ViewHolder) convertView.getTag();
}
BdaySelectListRow state = stateList.get(position);
holder.gender.setText(state.getGender());
holder.lastseen.setText(state.getLastSeen());
holder.name.setText(state.getName());
holder.name.setChecked(state.isSelected());
holder.name.setTag(state);
return convertView;
}
}
private void checkButtonClick() {
Button myButton = (Button) findViewById(R.id.butBdaySelectNext);
myButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
StringBuffer responseText = new StringBuffer();
responseText.append("Selected Countries are...\n");
ArrayList<BdaySelectListRow> stateList = dataAdapter.stateList;
for (int i = 0; i < stateList.size(); i++) {
BdaySelectListRow state = stateList.get(i);
if (state.isSelected()) {
responseText.append("\n" + state.getName());
}
}
Toast.makeText(getApplicationContext(), responseText,
Toast.LENGTH_LONG).show();
}
});
}
}
BdaySelectListRow.java
public class BdaySelectListRow {
String gender = null;
String name = null;
String lastSeen = null;
int rating=(Integer) null;
int event=(Integer) null;
boolean selected = false;
public BdaySelectListRow(String name, String gender, String lastSeen ,int rating,boolean selected,int event) {
super();
this.name = name;
this.gender = gender;
this.lastSeen = lastSeen;
this.rating = rating;
this.event = event;
this.selected = selected;
}
public String getLastSeen() {
return lastSeen;
}
public void setLastSeen(String code) {
this.lastSeen = lastSeen;
}
public String getGender() {
return gender;
}
public void setGender(String code) {
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getRating() {
return rating;
}
public void setRating(int rating) {
this.rating = rating;
}
public int getEvent() {
return event;
}
public void setEvent(int rating) {
this.event = event;
}
public boolean isSelected() {
return selected;
}
public void setSelected(boolean selected) {
this.selected = selected;
}
}