【问题标题】:Why my app crashes when I put the recycler view?为什么当我放置回收站视图时我的应用程序崩溃了?
【发布时间】:2021-08-28 17:12:13
【问题描述】:

我遵循了 youtube 上的指南,它帮助我在 Java 中执行 RecyclerView,但我是初学者。所以编译器说没关系,但它崩溃了,我不知道为什么。这是我关于回收站视图的代码页面。

在 Homepage.java 中:

public class HomePage extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {

DrawerLayout drawerLayout;
NavigationView navigationView;
Toolbar toolbar;

private AppCompatButton getstart, augurio;

//istanzio recyclerview
private RecyclerView mRecyclerView;
private RecyclerView.Adapter mAdapter;
private RecyclerView.LayoutManager mLayoutManager;
//fine istanziata

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home_page);

    //Per il buongiorno con silente
    ArrayList<ExampleItem> exampleList = new ArrayList<>();
    exampleList.add(new ExampleItem(R.drawable.ic__365678_fb_facebook_facebook_logo_icon, "Line1", "Line2"));
    exampleList.add(new ExampleItem(R.drawable.ic__365678_fb_facebook_facebook_logo_icon, "Line1", "Line2"));
    exampleList.add(new ExampleItem(R.drawable.ic__365678_fb_facebook_facebook_logo_icon, "Line1", "Line2"));

    mRecyclerView = findViewById(R.id.RecyclerViewBuongiorno);
    mRecyclerView.setHasFixedSize(true);
    mLayoutManager = new LinearLayoutManager(this);
    mAdapter = new ExampleAdapter(exampleList);

    mRecyclerView.setLayoutManager(mLayoutManager);
    mRecyclerView.setAdapter(mAdapter);
    //fine buongiorno silente

然后在 ExampleAdapter.java 中:

public class ExampleAdapter extends RecyclerView.Adapter<ExampleAdapter.ExampleViewHolder> {
private ArrayList<ExampleItem> mExampleList;

public static class ExampleViewHolder extends RecyclerView.ViewHolder {

    public ImageView mImageView;
    public TextView mTextView1, mTextView2;

    public ExampleViewHolder(View itemView) {
        super(itemView);
        mImageView = itemView.findViewById(R.id.Imageview);
        mTextView1 = itemView.findViewById(R.id.textview);
        mTextView2 = itemView.findViewById(R.id.textview2);
    }
}

public ExampleAdapter(ArrayList<ExampleItem> exampleList){
    mExampleList = exampleList;
}

@Override
public ExampleViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.example_item, parent, false);
    ExampleViewHolder evh = new ExampleViewHolder(v);
    return evh;
}

@Override
public void onBindViewHolder(ExampleViewHolder holder, int position) {
    ExampleItem currentItem = mExampleList.get(position);
    holder.mImageView.setImageResource(currentItem.getmImageResource());
    holder.mTextView1.setText(currentItem.getmText1());
    holder.mTextView2.setText(currentItem.getmText2());


}

@Override
public int getItemCount() {
    return mExampleList.size();
}

}

最后是最后一页java ExampleItem.java:

public class ExampleItem {
private int mImageResource;
private String mText1;
private String mText2;

public ExampleItem(int imageResource, String text1, String text2){
    mImageResource = imageResource;
    mText1 = text1;
    mText2 = text2;
}

public int getmImageResource(){
    return mImageResource;
}

public String getmText1(){
    return mText1;
}

public String getmText2(){
    return mText2;
}

}

【问题讨论】:

  • 你能显示完整的错误日志吗?
  • 您应该使用您的应用程序过滤日志,而不是不使用过滤器。在 No debuggable process 中,您选择您的应用并在清单中定义 package name
  • it.imgbb.com 在这里

标签: java android android-recyclerview


【解决方案1】:

您在 XML 文件中使用 mRecyclerView.setHasFixedSize(true);android:layout_height="wrap_content",这并不重要。当您设置 setHasFixedSize(true) 时,您无法更改 RecyclerView 的高度和宽度。

所以,请移除mRecyclerView.setHasFixedSize(true); 或将recyclerView 的高度设置为ma​​tch_parent

【讨论】:

  • 感谢您通知我这个错误。
猜你喜欢
  • 2021-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-20
  • 2010-09-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多