在onCreate中得到视图
setContentView(R.layout.memo_main);
mListView = (ListView)findViewById(R.id.memo_ListView);
然后对视图的list加载数据
ArrayList<HashMap<String, Object>> lstImageItem = new ArrayList<HashMap<String, Object>>();  
for(int i=0;i<memo.size();i++)  
{  
 HashMap<String, Object> map = new HashMap<String, Object>();            
 map.put("MemoTitle",memo.get(i).getTitle() );  
 lstImageItem.add(map);  
}  SimpleAdapter saImageItems = new SimpleAdapter(this, 
 lstImageItem,
 R.layout.memoitem,                                                                                                      
 new String[] {"MemoTitle"},                                                                                                         
 new int[] {R.id.MemoTitle});  mListView.setAdapter(saImageItems);
mListView.setOnItemLongClickListener(new OnItemLongClickListener()
{
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {

nIndex = mListView.getId();
mListView.removeViewAt(nIndex);
return false;
}
});
希望点击某一个item时就删除这个item,调试时发现点击item根本就不走onItemLongClick!
为什么啊?
求教!!!!!1

解决方案 »

  1.   

    加上Log看看执行到没,貌似mListView.removeViewAt(nIndex);删除不了,所以就看不到效果。
      

  2.   

    mListView.removeViewAt(nIndex); 你确定这个方法可以删除????  打断点,跟流程!大概就清楚问题在什么地方了。
      

  3.   

    mListView.setOnItemClickListener这个方法是点击某一个item时触发的事件mListView.setOnItemLongClickListener这个方法是长按某一个item时触发的事件
      

  4.   

    加上Log测试了,点击某一项时根本就进入不到这个函数中去。。
      

  5.   


    mListView.setOnItemClickListener这个方法是点击某一个item时触发的事件mListView.setOnItemLongClickListener这个方法是长按某一个item时触发的事件
    楼主如果用setOnItemLongClickListener这个监听方法,要按住某一个item不松,长按5秒左右就可以进入这个监听了
      

  6.   

    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
    long arg3) {
    // TODO Auto-generated method stub
    String tag = "OnItem";
    Log.v(tag, " onItemClick ");
    mListView.removeViewAt(mListView.getId());

    }
    使用这样的方式时发生异常!!!!!!!
      

  7.   

    mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                 //执行方法
                     String tag = "OnItem";
                  Log.v(tag, " onItemClick ");
                  mListView.removeViewAt(mListView.getId());         }
            });是上面这样写的吗??
    如果是,还报错,把日志发出来看看
      

  8.   

    可以使用mListView.removeViews(1, 1);,但是此时删除了指定Item后,list的最后一项变为了2个。
      

  9.   


    mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
      //执行方法
      String tag = "OnItem";
      Log.v(tag, " onItemClick ");
      mListView.removeViewAt(view.getId());  }
      });
      

  10.   

    楼主用下面方法写看看:
    mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
      //执行方法
      String tag = "OnItem";
      Log.v(tag, " onItemClick ");
      mListView.removeViewAt(view.getId()); 
      }
      });
      

  11.   

    12-15 07:52:09.972: VERBOSE/OnItem(459):  onItemClick 
    12-15 07:52:09.972: DEBUG/AndroidRuntime(459): Shutting down VM
    12-15 07:52:10.003: WARN/dalvikvm(459): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
    12-15 07:52:10.053: ERROR/AndroidRuntime(459): FATAL EXCEPTION: main
    12-15 07:52:10.053: ERROR/AndroidRuntime(459): java.lang.UnsupportedOperationException: removeViewAt(int) is not supported in AdapterView
    12-15 07:52:10.053: ERROR/AndroidRuntime(459):     at android.widget.AdapterView.removeViewAt(AdapterView.java:501)
    12-15 07:52:10.053: ERROR/AndroidRuntime(459):     at com.ntc.spmt.ui.memo.MemoMain$1.onItemClick(MemoMain.java:80)
    12-15 07:52:10.053: ERROR/AndroidRuntime(459):     at android.widget.AdapterView.performItemClick(AdapterView.java:284)
    12-15 07:52:10.053: ERROR/AndroidRuntime(459):     at android.widget.ListView.performItemClick(ListView.java:3382)
    12-15 07:52:10.053: ERROR/AndroidRuntime(459):     at android.widget.AbsListView$PerformClick.run(AbsListView.java:1696)
    12-15 07:52:10.053: ERROR/AndroidRuntime(459):     at android.os.Handler.handleCallback(Handler.java:587)
    12-15 07:52:10.053: ERROR/AndroidRuntime(459):     at android.os.Handler.dispatchMessage(Handler.java:92)
    12-15 07:52:10.053: ERROR/AndroidRuntime(459):     at android.os.Looper.loop(Looper.java:123)
    12-15 07:52:10.053: ERROR/AndroidRuntime(459):     at android.app.ActivityThread.main(ActivityThread.java:4627)
    12-15 07:52:10.053: ERROR/AndroidRuntime(459):     at java.lang.reflect.Method.invokeNative(Native Method)
    12-15 07:52:10.053: ERROR/AndroidRuntime(459):     at java.lang.reflect.Method.invoke(Method.java:521)
    12-15 07:52:10.053: ERROR/AndroidRuntime(459):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    12-15 07:52:10.053: ERROR/AndroidRuntime(459):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
    12-15 07:52:10.053: ERROR/AndroidRuntime(459):     at dalvik.system.NativeStart.main(Native Method)
    12-15 07:52:10.133: WARN/ActivityManager(64):   Force finishing activity com.ntc.spmt.ui/.memo.MemoMain
    12-15 07:52:10.723: WARN/ActivityManager(64): Activity pause timeout for HistoryRecord{43ff8358 com.ntc.spmt.ui/.memo.MemoMain}
    12-15 07:52:20.204: WARN/ActivityManager(64): Launch timeout has expired, giving up wake lock!
    12-15 07:52:20.926: WARN/ActivityManager(64): Activity idle timeout for HistoryRecord{43ff6138 com.ntc.spmt.ui/.DemoMain}
    12-15 07:52:26.014: WARN/ActivityManager(64): Activity destroy timeout for HistoryRecord{43ff8358 com.ntc.spmt.ui/.memo.MemoMain}
      

  12.   

    remove 的意思大概是删除后自动将游标移动到下一个
      

  13.   

    现在的主要问题时只想删除一个被选定的item项。
      

  14.   

    mListView.removeViewAt(nIndex);你把它改成mListView.removeViewAt(arg2);如果不行换成mListView.removeViewAt(arg3); 试试
      

  15.   

    nIndex = arg0.getId();
    mListView.removeViewAt(nIndex); 都试试吧,我也忘记了
      

  16.   

    把nIndex = mListView.getId();
    mListView.removeViewAt(nIndex);
    换成下面:
    lstImageItem.remove(arg2);
    mListView.invalidateViews();
      

  17.   

    哇塞。我点击也木有反应深切无语。selected事件是可以滴。
      

  18.   

    看来要从simpleAdapter撤退了。。
      

  19.   

    return  true才可以,不能return false