我的 activity_main.xml 没有显示我的联系人

My activity_main.xml is not showing my contacts

在我的 Android MainActivity class Studio 布局文件中,有一个用于显示我的联系人的布局,但它不再起作用。

布局显示如下:

这是模拟器中显示的内容(注意:我已经添加了联系人)。

我不确定它是否与布局、MainActivity 本身或清单有关。

假定在按钮下方显示联系人的 onCreate 代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.recycler_view);

ContactModel dummy = new ContactModel();
dummy.setName("foo");
dummy.setNumber("123");
arrayList.add(dummy);

adapter = new MainAdapter(this, arrayList);
recyclerView.setAdapter(adapter);

Button add_btn = findViewById(R.id.add_btn);

add_btn.setOnClickListener(v -> startActivity(new Intent(MainActivity.this, Add_Contact.class)));

Button rem_btn = findViewById(R.id.rem_btn);

rem_btn.setOnClickListener(v -> startActivity(new Intent(MainActivity.this, Main_Remove_Contact.class)));
}

这是我的 ContactModel 的样子:

package com.app.wolfix;

public class ContactModel {
    String name, number;

    public String getName(){
        return name;
    }

    public void setName(String name) { this.name = name; }

    public String getNumber() { return number; }

    public void setNumber(String number) { this.number = number; }
}

请不要犹豫,询问任何必要的代码,如有必要,我会编辑问题。

提前致谢!

这里有一些错误(在问题的原始版本中):

  • 您实际上从未创建过适配器实例
  • 您从未将其分配给 RecyclerView
  • 您从未向 arrayList
  • 添加任何数据
  • 您从未为 RecyclerView 设置布局管理器。

将所有这些放在一起,下面的 onCreate 对我来说适用于您的示例,以显示列表中的虚拟项目。您仍需要在其中某处添加用于填充 arrayList 的实际代码。

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

    RecyclerView recyclerView = findViewById(R.id.recycler_view);

    ContactModel dummy = new ContactModel();
    dummy.setName("foo");
    dummy.setNumber("123");
    arrayList.add(dummy);

    adapter = new MainAdapter(this, arrayList);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    recyclerView.setAdapter(adapter);

    // in your code, you could call something here to populate
    // arrayList with real values
}