错误:隐藏列表查看子项



>我有带有子项的列表视图。当我按列表视图子项时,当我按下它时,我想删除可扩展列表视图项。请在下面找到我使用的代码截取。

我用来隐藏列表项的代码片段

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(),因为它提供。 您提供有关项目在列表中位置的额外信息。查看参考以获取更多信息

最新更新