>我有带有子项的列表视图。当我按列表视图子项时,当我按下它时,我想删除可扩展列表视图项。请在下面找到我使用的代码截取。
我用来隐藏列表项的代码片段
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;
}
我使用了可扩展列表采用者代码段
@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)
您使用了错误的函数。
公开最终无效通知 ()
在 API 级别 1 中添加 导致线程正在等待此对象的 监视器(通过调用 wait() 方法之一)被唤醒 向上。如果有多个线程正在等待,则在 虚拟机的自由裁量权。所选线程不会立即运行。这 调用 notify() 的线程必须首先释放对象的监视器。 此外,所选线程仍然必须与其他线程竞争 尝试在同一对象上同步。
而不是 notify(),你需要使用
addcadschildadoptor.notifyDataSetChanged();
此外,与其在视图上使用 .setOnClickListener(),不如使用 .setOnItemClickListener(),因为它提供。 您提供有关项目在列表中位置的额外信息。查看参考以获取更多信息