android-recyclerview - 尝试调用虚拟方法 'void android.support.v7.widget.RecyclerView.setLayoutManager

标签 android-recyclerview

我不知道为什么,但它出现了 java.lang.RuntimeException: Unable to start activity ComponentInfo{krispo.callie/krispo.callie.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android .support.v7.widget.RecyclerView.setLayoutManager(android.support.v7.widget.RecyclerView$LayoutManager)' 在一个空对象引用

错误。我尝试添加 LinearLayoutManager 因为我认为这是我阅读的另一篇文章的解决方案。谁能帮帮我谢谢

public class MainActivity extends AppCompatActivity {

    FloatingActionButton FAB;
    List<Contact> contactsList;
    private RecyclerView recyclerView;
    private ContactAdapter contactAdapter;
    private String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        contactsList = new ArrayList<>();
        recyclerView = (RecyclerView)findViewById(R.id.recycler_view);


        contactsList.add(new Contact("Bob","123456789","1", true));
        contactsList.add(new Contact("Jo","987654321","2",true));

        contactAdapter = new ContactAdapter(contactsList);
        final LinearLayoutManager layoutManager = new LinearLayoutManager(this.getApplicationContext());
        layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        recyclerView.setLayoutManager(layoutManager);
        recyclerView.setAdapter(contactAdapter);


        FAB = (FloatingActionButton)findViewById(R.id.floatingActionButton);
        FAB.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent i = new Intent(MainActivity.this,NumberActivity.class);
                startActivity(i);
            }
        });



    }




}

最佳答案

最有可能的错误是你为你的 recyclerview 使用了错误的 id,这与 activity_main.xml 中声明的不同

在设置适配器之前设置 LinearLayoutManager,如下所示,并确保 activity_main 中的 recyclerview id 是 recycler_view

public class MainActivity extends AppCompatActivity {

FloatingActionButton FAB;
List<Contact> contactsList;
private RecyclerView recyclerView;
private ContactAdapter contactAdapter;
private String TAG = "MainActivity";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    contactsList = new ArrayList<>();
    recyclerView = (RecyclerView)findViewById(R.id.recycler_view);
    final LinearLayoutManager layoutManager = new LinearLayoutManager(MainActivity.this);
    recyclerView.setLayoutManager(layoutManager);


    contactsList.add(new Contact("Bob","123456789","1", true));
    contactsList.add(new Contact("Jo","987654321","2",true));

    contactAdapter = new ContactAdapter(contactsList);
    recyclerView.setAdapter(contactAdapter);


    FAB = (FloatingActionButton)findViewById(R.id.floatingActionButton);
    FAB.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent i = new Intent(MainActivity.this,NumberActivity.class);
            startActivity(i);
        }
    });



}
}

关于android-recyclerview - 尝试调用虚拟方法 'void android.support.v7.widget.RecyclerView.setLayoutManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51781024/

相关文章:

android - 如何将数据从 BottomSheetDialogFragment 返回到父 Fragment

java - 如何在Adapter类之外更新RecyclerViewAdapter

java - 用 Espresso 测试 recyclerView,如何执行点击或断言

java - 在nestedscrollview中的recyclerview内的recyclerview的notifyDataChanged上,外部recyclerview滚动到顶部

android - 将 Realm 与回收者 View 一起使用的最佳实践?

java - 取消选中所有复选框后禁用按钮

android - CoordinatorLayout/AppBarLayout 干扰 RecyclerView scrollToPosition(底部滚动)

Android - 每次旋转设备时,RecyclerView 都会倍增

java - CardView 无法正常工作

java - 更新 SQLite 数据库 Android RecyclerView Iterate