을 스크롤 한 후 항목을 클릭하는 동안 나는 CustomAdapter
와 ListView
내가 nullpointerexception
를 받고 오전 listview
을 스크롤하여 액세스 할 수있는 모든 항목의 현재 onclick
있습니다. 또한 화면 크기에 맞는 항목을 클릭 할 때 특정 요소를 스크롤 한 후에도 선택됩니다. 예를 들어 4 위를 선택하면 8 개의 항목이 표시되고 12 번째 항목도 선택됩니다.NullPointerException이
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);
}
}
로그 캣 :
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
당신이 같은 시도 :'CheckBox의 CHK1 = (CheckBox의) view.findViewById (R.id.check)'? –
Logcat을 게시 할 수 있습니까? – DCoder
예. 하지만 나에게도 같은 오류가 발생합니다 – user3606902