我有带有childItem的ListView。当我按下ListView时,当我按下它时,我有想要删除可扩展ListView项目的物品项目。我想删除我使用过的代码。
我用来隐藏列表项
的代码段ExpandableListView remov = (ExpandableListView) v.findViewById(R.id.lvExp);
remov.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
removimg.setOnClickListener(new OnClickListener() {
@SuppressLint("NewApi")
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(v.getContext(), "hello", Toast.LENGTH_SHORT).show();
addcadschildadoptor.remove(1);
addcadschildadoptor.notify();
}
});
return false;
}
});
return v;
}
我使用了Expandable list Adopter snippet
@SuppressLint("NewApi")
private void prepareListData() {
listDataHeader = new ArrayList<String>();
listDataChild = new HashMap<String, List<String>>();
listDataHeader.add("");
addcadschildadoptor = new ArrayList<String>();
if(cardNameone!="")
{
addcadschildadoptor.add(cardNameone);
}
if(cardNametwo!="")
{
addcadschildadoptor.add(cardNametwo);
}
Toast.makeText(getActivity(), cardNametwo, Toast.LENGTH_LONG).show();
listDataChild.put(listDataHeader.get(0), addcadschildadoptor);
listAdapter = new ExpandableListAdapter(getActivity(), listDataHeader,listDataChild);
expListView.setAdapter(listAdapter);
}
错误日志
04-04 16:47:51.611: E/InputEventReceiver(13452): Exception dispatching
input event.
04-04 16:47:51.626: E/MessageQueue-JNI(13452):
Exception in MessageQueue callback: handleReceiveCallback
04-04 16:47:51.696:
E/MessageQueue-JNI(13452): java.lang.NullPointerException
04-04 16:47:51.696:
E/MessageQueue-JNI(13452): at com.compareCr.ListvCompare$4.onTouch(ListvCompare.java:720)
04-04 16:47:51.696:
E/MessageQueue-JNI(13452): at android.view.View.dispatchTouchEvent(View.java:7374)
04-04 16:47:51.696:
E/MessageQueue-JNI(13452): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2464)
04-04 16:47:51.696: E/MessageQueue-JNI(13452): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
04-04 16:47:51.696: E/MessageQueue-JNI(13452): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.
java:2470)
04-04 16:47:51.696: E/MessageQueue-JNI(13452):
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2169)
04-04 16:47:51.696: E/MessageQueue-JNI(13452):
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2470)
答案 0 :(得分:1)
你使用了错误的功能。
public final void notify()
在API级别1中添加导致正在等待此对象的线程 监视器(通过调用wait()方法之一)被唤醒 起来。如果有多个线程正在等待,则选择其中一个线程 VM的自由裁量权。选定的线程不会立即运行。该 调用notify()的线程必须首先释放对象的监视器。 此外,所选线程仍然必须与其他线程竞争 试图在同一个对象上进行同步。
而不是notify(),你需要使用
addcadschildadoptor.notifyDataSetChanged();
此外,您应该使用.setOnItemClickListener(),而不是在视图上使用.setOnClickListener()。您有关项目在列表中的位置的额外信息。查看reference了解更多信息