我想设置一个标题为staggardGridLayoutManeger我有这个网址的代码 https://github.com/willblaschko/header-footer-recycler-view.此代码包含所有类型的布局的页眉和页脚.任何人都可以帮助设置适配器只为staggardGridLayout这是样本的代码形式
enter code here
public class RecyclerViewHeaderFooterAdapter extends RecyclerView.Adapter {
public static final int TYPE_MANAGER_OTHER = 0;
public static final int TYPE_MANAGER_LINEAR = 1;
public static final int TYPE_MANAGER_GRID = 2;
public static final int TYPE_MANAGER_STAGGERED_GRID = 3;
public static final int TYPE_HEADER = 7898;
public static final int TYPE_FOOTER = 7899;
private List<View> mHeaders = new ArrayList<>();
private List<View> mFooters = new ArrayList<>();
private int mManagerType;
private RecyclerView.LayoutManager mManager;
private IRecyclerViewIntermediary mIntermediary;
public RecyclerViewHeaderFooterAdapter(RecyclerView.LayoutManager manager, IRecyclerViewIntermediary intermediary){ …Run Code Online (Sandbox Code Playgroud) 我在一个片段中有三个回收者视图。我已经为其中两个设置了适配器。但是,一个回收者视图会使卡片视图夸大,而另一个则不能。
我已经调试了代码,没有显示的回收站视图的适配器没有被调用。
这是片段中的onViewCreated()方法
public void onViewCreated(View view, @NonNull Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
recyclerViewVendors = view.findViewById(R.id.rcyview_vendors);
recyclerViewEvents = view.findViewById(R.id.rcyview_home_events);
String json;
try{
InputStream is = getActivity().getAssets().open("vendorServices.json");
int size = is.available();
byte[] buffer = new byte[size];
if(is.read(buffer) == -1){
throw new EOFException();
}
is.close();
json = new String(buffer, StandardCharsets.UTF_8);
JSONObject object = new JSONObject(json);
JSONArray j_Array = object.getJSONArray("vendorServices");
for(int i=0;i<j_Array.length();i++){
JSONObject jo_inside = j_Array.getJSONObject(i);
myDatasetVendors.add(new VendorService(
jo_inside.getString("name"),
jo_inside.getString("img")
));
}
is = getActivity().getAssets().open("activities.json");
size = is.available();
buffer = new byte[size];
if …Run Code Online (Sandbox Code Playgroud) 我有一个ListView,Fragment我希望更新ListView从另一个返回时的数据Activity.我已经覆盖了该onResume()方法Fragment,修改了数据Adapter并调用notifyDataSetChanged()了Adpater但不知何故ListView没有更新.我怀疑我的身体有问题Adapter,但我似乎无法找到错误.
这是我的代码Adpater:
class ManualExceptionsListAdapter extends BaseAdapter {
private LayoutInflater mInflater;
private TextView mManualExceptions;
SwitchCompat mSwitch;
TextView name;
final Context context = getActivity();
final SharedPreferences mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
int a;
int ifUse = 0;
ManualExceptionsListAdapter(LayoutInflater inflater) {
mInflater = inflater;
}
@Override
public int getCount() {
return (mPermanentManualException.size()+mContactsExceptionNumber.size());
}
@Override
public Object getItem(int i) {
return null; …Run Code Online (Sandbox Code Playgroud) android android-listview android-viewholder recycler-adapter android-recyclerview
我有RecyclerViewAdapter:
public class RecycleViewAdapter extends RecyclerView.Adapter<RecycleViewAdapter.MyViewHolder> {
private List<Cards> items;
private int itemLayout;
Context context;
public RecycleViewAdapter(List<Cards> items, int itemLayout) {
this.items = items;
this.itemLayout= itemLayout;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view=LayoutInflater.from(parent.getContext()).inflate(itemLayout,parent,false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
Cards item=items.get(position);
holder.title.setText(item.getName());
String cardvalue = item.getCountry();
String cardCode = item.getCode();
String cardCountry = item.getCountry();
}
@Override
public int getItemCount() {
return items.size();
}
public static class MyViewHolder extends …Run Code Online (Sandbox Code Playgroud) android android-intent recycler-adapter android-recyclerview
我的适配器中有一些项目,但RecyclerView中没有显示任何内容.
适配器
public class WorkOrderAdapter extends RecyclerView.Adapter<WorkOrderViewHolder> {
private List<WorkOrder> orders = new LinkedList<>();
public void setData(List<WorkOrder> orders) {
this.orders = orders;
}
@Override
public WorkOrderViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_workorder, parent, false);
return new WorkOrderViewHolder(view);
}
@Override
public void onBindViewHolder(WorkOrderViewHolder holder, int position) {
WorkOrder order = orders.get(position);
holder.bind(order);
}
@Override
public int getItemCount() {
return orders.size();
}
}
Run Code Online (Sandbox Code Playgroud)
ViewHolder
public class WorkOrderViewHolder extends RecyclerView.ViewHolder {
private TextView title;
private TextView description;
private TextView date; …Run Code Online (Sandbox Code Playgroud) 在a中RecyclerView,我试图获得点击项目的X和Y位置.这是在我的适配器内:
@Override
public void onBindViewHolder(AlfabetoViewHolder holder, final int position) {
// setImage(holder.imageButton, images.get(position));
holder.imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
view.getX(); // This is 0, but it shouldn't be!
view.getY(); // This is also 0.
executaSomAnimacaoLetra(sounds.get(position), Utils.getResourceFromFile(popups.get(position), context), view); // I do some stuff here
}
});
}
Run Code Online (Sandbox Code Playgroud)
事实是,X和Y都总是返回0,他们不应该.我需要点击项目的X和Y来做一些动画.
我已经尝试将X和Y位置放在一个内部和一个OnGlobalLayoutListener内部OnPreDrawListener(当你需要活动的onCreate上的X和Y时它们都工作),但它们也返回0.
我正在使用GridLayoutManager我的RecyclerView:
recyclerView.setLayoutManager(new GridLayoutManager(Activity_alfabeto.this, 7, LinearLayoutManager.VERTICAL, false));
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏.
我想知道如何从Recycler View适配器获取编辑文本的位置.我使用Card View,其中水平线性布局有三个视图TextView,EditText视图和TextView.我想从Recycler View Adapter中的Textwatcher获取特定的EditText位置.
适配器:
public class CartlistAdapter extends RecyclerView.Adapter < CartlistAdapter.ViewHolder > {
private ArrayList < CartItemoriginal > cartlistadp;
private ArrayList < Cartitemoringinaltwo > cartlistadp2;
DisplayImageOptions options;
private Context context;
public static final String MyPREFERENCES = "MyPrefs";
public static final String MYCARTPREFERENCE = "CartPrefs";
public static final String MyCartQtyPreference = "Cartatyid";
SharedPreferences.Editor editor;
SharedPreferences shared,
wishshared;
SharedPreferences.Editor editors;
String pos,
qtyDelete;
String date;
String currentDateandTime;
private static final int VIEW_TYPE_ONE = 1;
private static final int VIEW_TYPE_TWO = …Run Code Online (Sandbox Code Playgroud) android android-layout recycler-adapter android-recyclerview
我面临与progressBar.setProgress()和的问题progressBar.setMax()。
我有两个项目,通常需要像附加的屏幕截图一样显示视频的进度。仅对于第一个项目,在设置了进度之后,我有一些进度数据,我需要将第二个项目的进度设置为0(零)。但是第二项ProgressBar不会重置为零,而是显示为第一项的进度长度。
我在这里打印了Items的值:
// Item1
Media List total Duration : 84063
Media List total ProgressDuration : 19380
// Item2
Media List total Duration : 0
Media List total ProgressDuration : 0
Run Code Online (Sandbox Code Playgroud)
适配器代码:
class ViewHolder extends RecyclerView.ViewHolder {
TextView fileName;
ImageView ivThumbNail;
ProgressBar progressBar;
View mainContainer;
View view;
ViewHolder(View itemView) {
super(itemView);
view = itemView;
mainContainer = itemView.findViewById(R.id.main_container);
fileName = (TextView) itemView.findViewById(R.id.tv_file_name);
ivThumbNail = (ImageView) itemView.findViewById(R.id.iv_thumbnail);
progressBar = (ProgressBar) itemView.findViewById(R.id.progress_bar);
}
}
@Override
public ViewHolder …Run Code Online (Sandbox Code Playgroud) java android android-progressbar recycler-adapter android-recyclerview
我试图使用onData获取循环视图,但我陷入了这个错误:
层次结构中找不到匹配的视图:可从类中分配:class android.widget.AdapterView
代码就是这样:
onData(allOf(isAssignableFrom(RecyclerView.class), withId(R.id.ce_musers_list)))
.check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE)));
Run Code Online (Sandbox Code Playgroud)
我的适配器扩展RecyclerView.Adapter到RecycleView的应用程序,然而,匹配器正在寻找一个简单的适配器.这是我第一次使用espress,所以我可能会失败一些基本的东西.
我的Espresso版本是3.0.0
unit-testing android-espresso recycler-adapter android-recyclerview
我正在尝试理解为什么适配器方法notifyDataSetChanged()无法刷新我的recyclerview。我在适配器这样的创建方法时找到了解决方案:
fun setData(list: List<DownloadModel>){
resumeList = list
notifyDataSetChanged()
}
Run Code Online (Sandbox Code Playgroud)
此解决方案有效,但是,我想知道为什么我不能做这样的事情:
private lateinit var downloadAdapter: DownloadRecyclerAdapter
private fun setupAdapter() {
downloadAdapter = DownloadRecyclerAdapter(
this@DownloadActivity,
downloadList,
{ id -> onViewClick(id) },
{ id -> onEditClick(id) },
{ id, position -> onDeleteClick(id, position) }
)
savedResumeRv.apply {
layoutManager = LinearLayoutManager(context)
layoutAnimation = AnimationUtils.loadLayoutAnimation(
this@DownloadActivity,
R.anim.layout_animation_down_to_up
)
adapter = downloadAdapter
}
}
private fun observers() {
downloadViewModel.getDownloadList().observe(this, Observer { list ->
downloadList = list
list?.let {
downloadAdapter.notifyDataSetChanged()
}
})
}
Run Code Online (Sandbox Code Playgroud)
downloadAdapter持有列表downloadList的相同实例,我不知道为什么当我在活动中通知适配器时无法正常工作。