I have ListView
with CustomAdapter
and now onclick
of any item which can be accessed by scrolling the listview
I am getting nullpointerexception
. Also when I am clicking on any of the item which is fit in screen size then after scrolling particular element also get selected..like if I am selecting 4th position and at a time 8 items are shown then 12th item will also get selected..
public class SelectCheckPoints extends ListActivity implements OnItemClickListener{
String s1[];
ListView checkpoints_list;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.select_checkpoints);
Bundle b = this.getIntent().getExtras();
s1 = b.getStringArray("array_checkpoints");
checkpoints_list=getListView();
checkpoints_list.setAdapter(new ItemAdapter());
checkpoints_list.setOnItemClickListener(this);
}
public class ItemAdapter extends BaseAdapter {
// private ImageLoadingListener animateFirstListener = new
// AnimateFirstDisplayListener();
@Override
public int getCount() {
return s1.length;
}
@Override
public Object getItem(int position) {
return s1[position];
}
@Override
public long getItemId(int position) {
Log.d("test id",position+"");
return position;
}
@SuppressLint("InflateParams")
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null){
// LayoutInflater class is used to instantiate layout XML file into its corresponding View objects.
LayoutInflater layoutInflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
convertView = layoutInflater.inflate(R.layout.checkpoint_listitem, null);
}
TextView checkpoints_name = (TextView) convertView.findViewById(R.id.checkpoints_name);
checkpoints_name.setText(s1[position]);
return convertView;
}
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
// TODO Auto-generated method stub
Log.d("check","in");
View v=checkpoints_list.getChildAt(position);
CheckBox chk1=(CheckBox)v.findViewById(R.id.check);
TextView title = (TextView) v.findViewById(R.id.checkpoints_name);
if(chk1.isChecked())
{
chk1.setChecked(false);
Log.e("check or not","not");
}
else
{
chk1.setChecked(true);
Log.e("check or not","not");
}
Log.d("check or not",title.getText().toString());
Log.d("check",position+" "+id);
}
}
LOGCAT:
09-28 15:37:36.445: E/AndroidRuntime(2672): FATAL EXCEPTION: main
09-28 15:37:36.445: E/AndroidRuntime(2672): java.lang.NullPointerException
09-28 15:37:36.445: E/AndroidRuntime(2672): at com.example.shareryde.book_share.SelectCheckPoints.onItemClick(SelectCheckPoints.java:89)
09-28 15:37:36.445: E/AndroidRuntime(2672): at android.widget.AdapterView.performItemClick(AdapterView.java:298)
09-28 15:37:36.445: E/AndroidRuntime(2672): at android.widget.AbsListView.performItemClick(AbsListView.java:1100)
09-28 15:37:36.445: E/AndroidRuntime(2672): at android.widget.AbsListView$PerformClick.run(AbsListView.java:2749)
09-28 15:37:36.445: E/AndroidRuntime(2672): at android.widget.AbsListView$1.run(AbsListView.java:3423)
09-28 15:37:36.445: E/AndroidRuntime(2672): at android.os.Handler.handleCallback(Handler.java:725)
09-28 15:37:36.445: E/AndroidRuntime(2672): at android.os.Handler.dispatchMessage(Handler.java:92)
09-28 15:37:36.445: E/AndroidRuntime(2672): at android.os.Looper.loop(Looper.java:137)
09-28 15:37:36.445: E/AndroidRuntime(2672): at android.app.ActivityThread.main(ActivityThread.java:5041)
09-28 15:37:36.445: E/AndroidRuntime(2672): at java.lang.reflect.Method.invokeNative(Native Method)
09-28 15:37:36.445: E/AndroidRuntime(2672): at java.lang.reflect.Method.invoke(Method.java:511)
09-28 15:37:36.445: E/AndroidRuntime(2672): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
09-28 15:37:36.445: E/AndroidRuntime(2672): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
09-28 15:37:36.445: E/AndroidRuntime(2672): at dalvik.system.NativeStart.main(Native Method)
09-28 15:37:38.125: I/Process(2672): Sending signal. PID: 2672 SIG: 9
09-28 15:37:38.325: E/Trace(2704): error opening trace file: No such file or directory (2)
09-28 15:37:38.569: D/(2704): HostConnection::get() New Host Connection established 0xb798d068, tid 2704