Android 如何使用recyclerview适配器从字符串数组列表中的元素获取字符串
我创建了一个RecyclerView,它使用字符串的ArrayList进行膨胀,我想为下一个获取信息的活动添加额外的信息。我可以在意图中传递元素在RecyclServiceWW中的位置,但我还希望发送该元素中显示的字符串值。recylcerView适配器使用的布局只有一个TextView,用于显示字符串ArrayList中的值 问题出在适配器中,因为我希望能够将字符串作为额外信息放入intent中。我要更改的是ItemClickListener中的onItemClick方法参数,但我不知道下一步该怎么做 下面是适配器: 适配器_displays_rv.java 我想我所要做的只是修改一下onite的mclick参数,但还有什么其他的呢 以下是布局,以防万一: recyclerview\u simple\u layout.xml 然后是主要的活动: FoodFamilyActivity.javaAndroid 如何使用recyclerview适配器从字符串数组列表中的元素获取字符串,android,adapter,android-adapter,onitemclicklistener,onitemclick,Android,Adapter,Android Adapter,Onitemclicklistener,Onitemclick,我创建了一个RecyclerView,它使用字符串的ArrayList进行膨胀,我想为下一个获取信息的活动添加额外的信息。我可以在意图中传递元素在RecyclServiceWW中的位置,但我还希望发送该元素中显示的字符串值。recylcerView适配器使用的布局只有一个TextView,用于显示字符串ArrayList中的值 问题出在适配器中,因为我希望能够将字符串作为额外信息放入intent中。我要更改的是ItemClickListener中的onItemClick方法参数,但我不知道下一步
如果您还需要什么,请告诉我,因为我确实需要帮助解决此问题。您可以向适配器添加以下功能
public String getDishForPosition(int position) {
if (mData != null && mData.size() > 0) {
return mData.get(position);
}
return null;
}
您已经使用getAdapterPosition获得了相关职位。使用上述函数可以从列表中获取字符串
将您的界面更改为
public interface ItemClickListener {
void onItemClick(View view, int position,String dishes);
}
现在您的活动中有了所需的字符串,您可以将其传递给Intent乐意帮助:
public class FoodFamilyActivity extends Activity implements Adapter_dishes_rv.ItemClickListener {
Adapter_dishes_rv adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_food_family);
ArrayList<String> dishesOfAFamily = new String[]{"Sopa de pobre", "Sopa de pescado", "Sopa de sobre"}
RecyclerView recyclerView = findViewById(R.id.FamilyDishes);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
adapter = new Adapter_dishes_rv(this, dishesOfAFamily);
adapter.setClickListener(this);
recyclerView.setAdapter(adapter);
}
@Override
public void onItemClick(View view, int position) {
Intent intent = new Intent(FoodFamilyActivity.this, DishActivity.class);
intent.putExtra(DishActivity.EXTRA_DISHNO, (int) position);
startActivity(intent);
}
}
public String getDishForPosition(int position) {
if (mData != null && mData.size() > 0) {
return mData.get(position);
}
return null;
}
public interface ItemClickListener {
void onItemClick(View view, int position,String dishes);
}