如何解决显示非活动类的吐司
我想显示非活动类的敬酒,这是我的RecyclerView
适配器。
我该怎么做?
我想在onLoadingStateChanged()
switch语句中设置烤面包。
我尝试了一些旧代码,但似乎不起作用。
我不希望RecylerView
适配器进入MainActivity
我的适配器活动:
public class TalesAdapter extends FirestorePagingAdapter<TalesDetails,TalesAdapter.TalesViewHolder> {
public TalesAdapter(@NonNull FirestorePagingOptions<TalesDetails> options) {
super(options);
}
@Override
protected void onBindViewHolder(@NonNull TalesViewHolder holder,int position,@NonNull TalesDetails model) {
holder.bind(model);
}
@NonNull
@Override
public TalesViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.talesrecyclerview,parent,false);
return new TalesViewHolder(view);
}
@Override
protected void onLoadingStateChanged(@NonNull LoadingState state) {
switch (state) {
case LOADING_INITIAL:
case LOADING_MORE:
//toast here
break;
case LOADED:
//toast here
case FINISHED:
//toast here
break;
case ERROR:
//toast here
break;
}
}
public class TalesViewHolder extends RecyclerView.ViewHolder {
private TextView Title;
private TextView Matter;
private TextView Name;
public TalesViewHolder(View itemView ) {
super(itemView);
Name = itemView.findViewById(R.id.tvName);
Title = itemView.findViewById(R.id.tvTitle);
Matter = itemView.findViewById(R.id.tvMatter);
}
public void bind(TalesDetails tales){
Name.setText(tales.name);
Title.setText(tales.title);
Matter.setText(tales.matter);
}
}
}
解决方法
您有两种可能:
1-创建Context
变量
private Context context;
public TalesViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType) {
context = parent.getContext();
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.talesrecyclerview,parent,false);
return new TalesViewHolder(view);
}
2-使用implementation 'com.blankj:utilcodex:1.29.0'
ToastUtils.showShort("YOUR TEXT HERE");
,
声明YourActivity类的变量类型,并在构造TalesAdapter
时传递活动引用
public class TalesAdapter extends FirestorePagingAdapter<TalesDetails,TalesAdapter.TalesViewHolder> {
Context mContext = null;
public TalesAdapter(@NonNull FirestorePagingOptions<TalesDetails> options,Context mContext) {
this.mContext = mContext;
super(options);
}
@Override
protected void onLoadingStateChanged(@NonNull LoadingState state) {
switch (state) {
case LOADING_INITIAL:
case LOADING_MORE:
Toast.makeText(mContext,"your message",Toast.LENGTH_SHORT).show()
break;
case LOADED:
//toast here
case FINISHED:
//toast here
break;
case ERROR:
//toast here
break;
}
}
}
,
您可以在适配器中创建构造函数 喜欢:
Context mContext;
public TalesAdapter(@NonNull FirestorePagingOptions<TalesDetails> options,Context mContext) {
this.mContext = mContext;
super(options);
}
@Override
protected void onLoadingStateChanged(@NonNull LoadingState state) {
switch (state) {
case LOADING_INITIAL:
case LOADING_MORE:
Toast.makeText(mContext,"Taost",Toast.LENGTH_SHORT).show();
break;
case LOADED:
Toast.makeText(mContext,Toast.LENGTH_SHORT).show();
break;
case FINISHED:
Toast.makeText(mContext,Toast.LENGTH_SHORT).show();
break;
case ERROR:
Toast.makeText(mContext,Toast.LENGTH_SHORT).show();
break;
}
}
在您的活动中,无论是MainActivity.java
还是该适配器在RecyclerView或ListView中的任何时间
Context mContext = this;
adapter = new TalesAdapter(mContext);
mRecycler.setAdapter(adapter)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。