有人能帮我吗?我不知道为什么我会犯这个错误。
public class TenantAdapter extends RecyclerView.Adapter<TenantAdapter.TenantViewHolder> {
private List<Tenant> values;
private final OnItemClickListener listener;
public TenantAdapter (List<Tenant> values, OnItemClickListener listener) {
this.values = values;
this.listener = listener;
}
public interface OnItemClickListener {
void onItemClick(Tenant tenant);
}
static class TenantViewHolder extends RecyclerView.ViewHolder {
TextView nameTextView;
TenantViewHolder(TextView itemView) {
super(itemView);
nameTextView = itemView;
}
void bind(final Tenant tenant, final OnItemClickListener listener){
nameTextView.setText(tenant.getName());
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
listener.onItemClick(tenant);
}
});
}
}
@Override
public TenantViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View rowView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_tenant, parent, false);
TextView nameTextView = (TextView) rowView.findViewById(R.id.item_tenant_name);
TenantViewHolder tenantViewHolder = new TenantViewHolder(nameTextView);
return tenantViewHolder;
}
@Override
public void onBindViewHolder(TenantViewHolder holder, int position) {
holder.bind(values.get(position), listener);
}
@Override
public int getItemCount() {
return values.size();
}
}
public class TenantActivity extends AppCompatActivity {
private RecyclerView recyclerView;
private RecyclerView.Adapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tenant);
recyclerView = (RecyclerView) findViewById(R.id.activity_tenant_recycler_view);
recyclerView.setHasFixedSize(true);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
List<Tenant> values = new ArrayList<>();
Tenant temp = new Tenant();
temp.setName("Gurdwara Guru Nanak Mission Sewa Society");
values.add(temp);
adapter = new TenantAdapter(values, new TenantAdapter.OnItemClickListener() {
@Override
public void onItemClick(Tenant tenant) {
TenantActivity.this.startActivity(new Intent(TenantActivity.this, HomeActivity.class));
}
});
recyclerView.setAdapter(adapter);
}
}
您在ViewHolder的构造函数中传递子TextView,这是不对的。您应该传递父视图并在构造函数中展开它。
static class TenantViewHolder extends RecyclerView.ViewHolder {
TextView nameTextView;
TenantViewHolder(View itemView) {
super(itemView);
nameTextView = (TextView) itemView.findViewById(R.id.item_tenant_name);
}
}
在您的适配器中,只需直接传递膨胀视图。
@Override
public TenantViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View rowView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_tenant, parent, false);
TenantViewHolder tenantViewHolder = new TenantViewHolder(rowView);
return tenantViewHolder;
}
问题内容: 在我的应用中,我必须经常在两种布局之间切换。错误在下面发布的布局中发生。 第一次调用布局时,没有发生任何错误,一切都很好。然后,当我调用不同的布局(空白),然后再次调用我的布局时,出现以下错误: 我的布局代码如下所示: 我知道之前曾有人问过这个问题,但对我来说没有帮助。 问题答案: 错误消息说明你应该做什么。
我在垂直回收视图中使用水平回收视图开发一个片段(像谷歌应用商店)。 当我从父循环视图notifyDataSetChanged时,子循环视图将失去位置,因为我认为setAdapter是在onBindViewHolder中调用的。此外,当我在第一个水平循环视图中滚动到第5个位置时,如果我向下滚动并返回,我会松开第5个位置。 我尝试使用RecyCL View.scrollToPosition(),但那不
我正在使用3个标签构建一个像WhatsApp一样的应用程序,每个标签都有一个< code >片段。在我的第一个< code >片段中,我有一个< code > recycle view 。 赢取一套SectionsPager适配器,开始宽度Recy,如下图所示: 它给了我这个错误: E/AndroidRuntime:致命异常:主进程:com.deraah.mohamed。deraahpro,PID
我试图做一个问答应用程序,在那里你点击加号按钮来添加一个问答。屏幕上弹出一个按钮,你可以点击它来播放或编辑测验。当我点击新创建的按钮一次很好,但第二次点击它时,应用程序崩溃了。有人知道我如何专门修复这个错误吗? 2020-12-28 13:48:47.521 266 48-26648/com.example.k_ari E/AndroidRuntime:致命异常:main process:com.
我正在尝试将数据提供给我的listView,单击FAB时,它会显示一个对话框,其中包含一个editText和两个按钮。在第一次,它允许我向ListView提供数据。但是当我第二次尝试时,它会显示错误: FATAL EXCEPTION: main Process:com.example.app.wounderlist.wounderlist.HomeFragment, PID: 3790 1.onC
问题内容: 我想用以下结构构建一个站点header-view,main-view,footer- view。因此,我定义了一个包含页眉和页脚的根路由。root的子代将是我的全部站点。在这些站点中,我将拥有更多的嵌套视图。 在下面的代码中,它确实显示了页眉,但未显示页脚和主视图。一旦删除父级继承,它将显示主视图,但不显示页眉和页脚。 的HTML JS 问题答案: 有一个与正在工作的矮人有关的链接。