Android 如何在单击回收器列表项后将片段添加到活动中,以及如何获取回收器项值?
我在此附上我的代码Android 如何在单击回收器列表项后将片段添加到活动中,以及如何获取回收器项值?,android,fragment,adapter,android-recyclerview,Android,Fragment,Adapter,Android Recyclerview,我在此附上我的代码 我有一个片段,其中包含回收者列表项列表 如果我单击片段上的回收项目,我将无法移动到新活动 我想得到我点击的回收物品的价值 因此,请建议我如何在点击回收者列表项目后将其分段到活动中,以及如何获取回收者项目值 ContactOneFragment public class ContactOneFragment extends Fragment { protected RecyclerView.LayoutManager mLayoutManager; @Over
public class ContactOneFragment extends Fragment {
protected RecyclerView.LayoutManager mLayoutManager;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view= inflater.inflate(R.layout.fragment_contactone, null, false);
RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.recyclerView);
DetailModel detail[] = {
new DetailModel("Meenakshi.A","9566415797"),
new DetailModel("Pandimurugeswari.S","8940144873"),
new DetailModel("Selvam. K","7708410451"),
new DetailModel("Raja Lakshmi.V","9952754812"),
new DetailModel("Narmatha Devi.S","9894762259"),
new DetailModel("Murugan.M","9566368816"),
new DetailModel("SenthilMurugan.A","7667453595"),
};
mLayoutManager = new LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(mLayoutManager);
DetailAdapter mAdapter = new DetailAdapter(detail);
recyclerView.setAdapter(mAdapter);
recyclerView.setItemAnimator(new DefaultItemAnimator());
return view;
}
}
DetailAdapter
public class DetailAdapter extends RecyclerView.Adapter<DetailAdapter.ViewHolder> {
private DetailModel[] itemsData;
private final ArrayList<Integer> selected = new ArrayList<>();
OnItemClickListener mItemClickListener;
Context context;
public DetailAdapter(DetailModel[] itemsData) {
this.itemsData = itemsData;
}
// Create new views (invoked by the layout manager)
@Override
public DetailAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
// create a new view
View itemLayoutView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.contactnamenumber, null);
// create ViewHolder
ViewHolder viewHolder = new ViewHolder(itemLayoutView);
return viewHolder;
}
// Replace the contents of a view (invoked by the layout manager)
@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {
// - get data from your itemsData at this position
// - replace the contents of the view with that itemsData
viewHolder.namelist.setText(itemsData[position].getName());
viewHolder.numberlist.setText(itemsData[position].getNumber());
// viewHolder.imgViewIcon.setImageResource(itemsData[position].getImageUrl());
// viewHolder.imgViewIcon.setTag(new Integer(position));
}
// inner class to hold a reference to each item of RecyclerView
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
public TextView namelist;
public TextView numberlist;
String name;
String number;
public ViewHolder(View itemLayoutView) {
super(itemLayoutView);
namelist = (TextView) itemLayoutView.findViewById(R.id.name);
numberlist = (TextView) itemLayoutView.findViewById(R.id.contactnumber);
//imgViewIcon = (ImageView) itemLayoutView.findViewById(R.id.item_icon);
name=namelist.getText().toString();
number=numberlist.getText().toString();
itemLayoutView.setOnClickListener(this);
}
@Override public void onClick(View view) {
}
}
public interface OnItemClickListener {
public void onItemClick(View view , int position);
}
public void SetOnItemClickListener(final OnItemClickListener mItemClickListener) {
this.mItemClickListener = mItemClickListener;
}
// Return the size of your itemsData (invoked by the layout manager)
@Override
public int getItemCount() {
return itemsData.length;
}
} //Update - Code formatting
公共类DetailAdapter扩展了RecyclerView.Adapter{
私有DetailModel[]项数据;
选定的专用最终ArrayList=新ArrayList();
OnItemClickListener mItemClickListener;
语境;
公共DetailAdapter(DetailModel[]itemsData){
this.itemsData=itemsData;
}
//创建新视图(由布局管理器调用)
@凌驾
public DetailAdapter.ViewHolder onCreateViewHolder(视图组父级,int-viewType){
//创建新视图
View itemLayoutView=LayoutFlater.from(parent.getContext())
.充气(R.layout.contactnamenumber,空);
//创建视图持有者
ViewHolder ViewHolder=新的ViewHolder(itemLayoutView);
返回视图持有者;
}
//替换视图的内容(由布局管理器调用)
@凌驾
公共无效onBindViewHolder(ViewHolder ViewHolder,int位置){
//-从该位置的itemsData获取数据
//-将视图的内容替换为该项数据
viewHolder.namelist.setText(itemsData[position].getName());
viewHolder.numberlist.setText(itemsData[position].getNumber());
//viewHolder.imgViewIcon.setImageResource(itemsData[position].getImageUrl());
//viewHolder.imgViewIcon.setTag(新整数(位置));
}
//用于保存对RecyclerView的每个项的引用的内部类
公共类ViewHolder扩展了RecyclerView.ViewHolder实现了View.OnClickListener{
公共文本视图名称列表;
公共文本视图编号列表;
字符串名;
字符串编号;
公共视图持有者(视图项布局视图){
超级(itemLayoutView);
namelist=(TextView)itemLayoutView.findViewById(R.id.name);
numberlist=(TextView)itemLayoutView.findViewById(R.id.contactnumber);
//imgViewIcon=(ImageView)itemLayoutView.findViewById(R.id.item_图标);
name=namelist.getText().toString();
number=numberlist.getText().toString();
itemLayoutView.setOnClickListener(此);
}
@覆盖公共void onClick(视图){
}
}
公共接口侦听器{
公共虚线单击(视图,int位置);
}
公共void SetOnItemClickListener(最终OnItemClickListener mItemClickListener){
this.mItemClickListener=mItemClickListener;
}
//返回itemsData的大小(由布局管理器调用)
@凌驾
public int getItemCount(){
返回itemsData.length;
}
}//更新-代码格式
修改构造函数
DetailAdapter
如下:
public DetailAdapter(Context context, DetailModel[] itemsData) {
this.context = context;
this.itemsData = itemsData;
}
在适配器中的onClick()
方法上添加以下代码:
@Override
public void onClick(View view) {
int pos = getAdapterPosition();
String tempName = itemsData[pos].getName();
String tempNumber = itemsData[pos].getNumber();
Intent intent = new Intent(context, YourActivity.class);
startActivity(intent);
}
将此添加到适配器上
View.OnClickListener mOnClickListener = new OrderClickListener();
然后
现在在适配器中
private class OrderClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
mOrderSelect.onOrderSelect(rvOrderHistory.getChildLayoutPosition(v));
}
}
通过以上步骤,您可以获得单击项目的位置。在这里您可以进入下一个活动。您检查过了吗?不客气。如果你已经解决了,就接受答案@卡提克
private class OrderClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
mOrderSelect.onOrderSelect(rvOrderHistory.getChildLayoutPosition(v));
}
}