2017-02-02 45 views
0

我试图在我的RecyclerView中编辑一个项目,但我不知道如何将这些信息(例如列表中的位置,它保存的值)传递给EditItem活动。下面是我如何检测水龙头:如何在RecyclerView中传递物品的位置?

rvBucketItem = (RecyclerView) findViewById(R.id.rvBucketItemList); 
ItemList = BucketItem.initializeTaskList(1); 
BucketItemAdapter adapterBucket = new BucketItemAdapter(this, ItemList); 
rvBucketItem.setAdapter(adapterBucket); 
rvBucketItem.setLayoutManager(new LinearLayoutManager(this)); 

rvBucketItem.setOnClickListener(new RecyclerView.OnClickListener() 
{ 
    @Override 
    public void onClick(View view) 
    { 
     Intent intent = new Intent(MainBucketActivity.this, EditItem.class); 
     startActivity(intent); 
    } 
}); 

我知道,你可以使用putExtra()方法物品存储到列表中,但我不知道我怎么会得到项目本身。

+1

你不应该使用recyclerview.onClickListener方法。你需要在你的适配器类中实现它。请参阅:http://stackoverflow.com/questions/24471109/recyclerview-onclick – okarakose

+0

[Android应用程序中什么是“包”]可能的重复(http://stackoverflow.com/questions/4999991/what-is- a-bundle-in-an-android-application) – Cheesebaron

+0

@OmerKarakose我试过,但它让我困惑,给了我几十个我无法解决的bug。就像我甚至不能在我的适配器类中声明'private final OnClickListener mOnClickListener = new MyOnClickListener();'。 –

回答

1

请参考下面的代码

rvBucketItem.addOnItemTouchListener( 
    new RecyclerItemClickListener(context, new RecyclerItemClickListener.OnItemClickListener() { 
     @Override public void onItemClick(View view, int position) { 
     // TODO Handle item click with view and given position 
     } 
    }) 
); 
+0

它不承认'RecyclerItemClickListener' –

+0

请参阅更多详细信息http://alexzh.com/tutorials/recyclerview-click-listener/ –

0

我认为你正在寻找一个Bundle,这样你就可以将数据传输给新的活动。

束通常用于各种的Android 活动之间传递数据。这取决于你想要传递什么类型的值, ,但bundle可以保存所有类型的值并将它们传递给新的 活动。

这里是链接 - >What is a "bundle" in an Android application

+0

不是我在找什么。我没有问题传递信息,我只是有一个问题,让它开始。就像我怎么知道物品的位置是什么。 –

相关问题