如何将 getIntent.getStringExtra("username") 放入 android 适配器 onBindViewHolder(@NonNull final Vi
Posted
技术标签:
【中文标题】如何将 getIntent.getStringExtra("username") 放入 android 适配器 onBindViewHolder(@NonNull final ViewHolder holder, final int position)【英文标题】:How to put getIntent.getStringExtra("username") in android adapter onBindViewHolder(@NonNull final ViewHolder holder, final int position) 【发布时间】:2021-01-17 13:54:29 【问题描述】:我想在这个适配器类中调用getIntent().getStringExtra()
。我在上一堂课中通过了用户名。但在这里我不能在这个适配器类中调用 get intent。
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.layout_gig_item, parent, false);
return new ViewHolder(itemView);
@Override
public void onBindViewHolder(@NonNull final ViewHolder holder, final int position)
final GigHolder gigHolder = gigList.get(position);
holder.lbl_title.setText(gigHolder.getTitle());
holder.lbl_price.setText(Utils.getDecimal(gigHolder.getTotal()));
holder.lbl_contact.setText(gigHolder.getContact());
holder.img_cover.setImageURI(gigHolder.getImage());
holder.ll_main.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View view)
if(!isAdminView)
Intent intent = new Intent(activity, GigViewActivity.class);
intent.putExtra(Constants.BUNDLE_ID, gigHolder.getPrimaryKey());
activity.startActivity(intent);
);
【问题讨论】:
【参考方案1】:最好只从支持适配器类的activity或fragment中获取数据,通过函数传递给适配器类
【讨论】:
【参考方案2】:你有两种方法可以解决这个问题:
第一种方法是将调用Class
的Context
作为Adapter
的Constructor
参数传递。然后您可以通过调用context.getIntent().getStringExtra()
访问StringExtra
。
第二种方法是从您的调用Class
中获取StringExtra
,然后将其作为Adapter
的Contructor
参数传递。
【讨论】:
以上是关于如何将 getIntent.getStringExtra("username") 放入 android 适配器 onBindViewHolder(@NonNull final Vi的主要内容,如果未能解决你的问题,请参考以下文章