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



我不知道为什么,但它提出了java.lang.RuntimeException:无法启动活动ComponentInfo{krispo.callie/krispo.callie.MainActivity}:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'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);
}
});

}


}

错误很可能是您对回收器视图使用了错误的 ID,该 ID 与activity_main.xml中声明的 ID 不同

在设置适配器之前设置LinearLayoutManager,如下所示,并确保activity_main内的 RecyclerView IDrecycler_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);
}
});

}
}

最新更新