2017-01-01 163 views
0

我在下面的代码中设置了一个点击侦听器,但滑动和磁带事件处理程序没有被调用。任何想法为什么?未触发触摸和滑动事件

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    recyclerView = (RecyclerView) findViewById(R.id.view); 

    getOverflowMenu(); 

    android.support.v4.app.LoaderManager loaderManager = 
     getSupportLoaderManager(); 

    android.support.v4.content.Loader<Cursor> loader = 
     loaderManager.getLoader(loader_id); 

    if (loader != null) 
     loaderManager.initLoader(loader_id, null, this); 
    else 
     loaderManager.restartLoader(loader_id,null,this); 

    recyclerView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Toast.makeText(getApplicationContext(),"touched",Toast.LENGTH_SHORT).show();; 
     } 
    }); 

    new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) { 
     @Override 
     public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) { 
      Toast.makeText(getApplicationContext(),"moved",Toast.LENGTH_SHORT).show(); 
      return true; 
     } 

     @Override 
     public void onSwiped(RecyclerView.ViewHolder viewHolder, int swipeDir) { 
      long id = (long) viewHolder.itemView.getTag(); 
      remove(id); 
     } 
    }); 
} 
+0

'完成(11)' - 这是家庭作业吗? –

+1

你需要更加努力地思考你要求人们为你做些什么。如果你在这里需要帮助,请很好地格式化你的代码。删除不必要的评论,使*易*阅读。不要包含比展示问题所需的代码更多的代码,并要求提供非常清晰易懂的问题,并对其进行智能地陈述。 – clearlight

回答

0

试试这个与循环意见活动(像主也许)

private RecyclerView recyclerView; 

ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) { 

     @Override 
     public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) { 
      return false; 
     } 
     @Override 
     public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { 
      int position = viewHolder.getAdapterPosition(); 
       if (direction == ItemTouchHelper.RIGHT){ 
       Toast.makeText(MainActivity.this, "swiped left", Toast.LENGTH_SHORT).show(); 
      //do something awsome 
      } else { 
       Toast.makeText(MainActivity.this, "swiped right", Toast.LENGTH_SHORT).show(); 
      //do something awesomer 
      } 
     } 

    }; 
    ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleItemTouchCallback); 
    itemTouchHelper.attachToRecyclerView(recyclerView); 


} 
+0

我试过了,但没有奏效 –