Android RecyclerView(适配器)不显示任何内容
我试图用Android回收器视图显示一些物品的列表 我在这里和其他地方看到一些人有类似的问题,但我自己的代码无法解决 事实上,我有另一个回收者的观点,这是可行的。这可能很简单,但我看不出来 这是我的密码:Android RecyclerView(适配器)不显示任何内容,android,android-recyclerview,Android,Android Recyclerview,我试图用Android回收器视图显示一些物品的列表 我在这里和其他地方看到一些人有类似的问题,但我自己的代码无法解决 事实上,我有另一个回收者的观点,这是可行的。这可能很简单,但我看不出来 这是我的密码: public class ModulesActivity extends AppCompatActivity implements ModuleLineHolder.OnModuleListener { private static final String TAG = "D
public class ModulesActivity extends AppCompatActivity implements ModuleLineHolder.OnModuleListener {
private static final String TAG = "DEBUG";
RecyclerView mRecyclerView;
ModuleLineAdapter mAdapter;
ArrayList<Card> data;
ArrayList<String> fakeData;
ApiInterface apiService;
ModuleList moduleList;
Card module;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_modules);
mRecyclerView = findViewById(R.id.rvModules);
setupRecycler();
}
private void setupRecycler() {
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
mRecyclerView.setLayoutManager(layoutManager);
initData();
mAdapter = new ModuleLineAdapter(data, this);
mRecyclerView.setAdapter(mAdapter);
}
private void initData() {
Log.d(TAG, "initData: ");
data = new ArrayList<>();
fakeData = new ArrayList<>();
apiService =
ApiClient.getClient().create(ApiInterface.class);
Call<ModuleList> call = apiService.getModules(
"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjMsImlzcyI6Imh0dHA6Ly9kb3NlZXh0cmEuZG9zZXJwLmNvbS5ici9hcGkvYXV0aC9sb2dpbiIsImlhdCI6MTU1MDQ5NjY1NiwiZXhwIjoxNTgxNTk3MDU2LCJuYmYiOjE1NTA0OTY2NTYsImp0aSI6Im13UXpjMGllajdLbmRkQlIifQ.lsmXbEpOhfG0BGhzHwZcSJWXyuWHGHCLI_u5ad4VICY"
);
call.enqueue(new Callback<ModuleList>() {
@Override
public void onResponse(Call<ModuleList> call, Response<ModuleList> response) {
moduleList = response.body();
Log.d(TAG, "onResponse - Call: " + response.body().getCards().get(0).getTitle());
Log.d(TAG, "onResponse - moduleList Size: " + moduleList.getCards().size());
for (int i=0; i < moduleList.getCards().size(); i++) {
data.add(new Card(
response.body().getCards().get(i).getTitle(),
response.body().getCards().get(i).getContent(),
response.body().getCards().get(i).getId(),
response.body().getCards().get(i).getLink()
));
Log.d(TAG, "onResponse - Call: " + response.body().getCards().get(i).getTitle());
}
}
@Override
public void onFailure(Call<ModuleList> call, Throwable t) {
}
});
}
@Override
public void onModuleClick(int position) {
Log.d(TAG, "onModuleClick: clicked " + position);
Toast.makeText(this, "Module: " + module.getId(), Toast.LENGTH_LONG).show();
// Intent intent = new Intent(getContext(), ModulesActivity.class);
// intent.putExtra("id", client.getId());
// startActivity(intent);
}
}
公共类模块活动扩展了AppCompativity实现了ModuleLineHolder.OnModuleListener{
私有静态最终字符串TAG=“DEBUG”;
回收视图mRecyclerView;
ModuleLeadapter-mAdapter;
阵列列表数据;
ArrayList伪造数据;
APIs接口apiService;
模块列表模块列表;
卡模块;
@凌驾
创建时受保护的void(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_模块);
mRecyclerView=findviewbyd(R.id.rvModules);
设置回收器();
}
私人回收商(){
LinearLayoutManager layoutManager=新的LinearLayoutManager(此);
mRecyclerView.setLayoutManager(layoutManager);
initData();
mAdapter=新模块leadapter(数据,本);
mRecyclerView.setAdapter(mAdapter);
}
私有void initData(){
Log.d(标签“initData:”);
数据=新的ArrayList();
fakeData=newarraylist();
蜂房服务=
ApiClient.getClient().create(apinterface.class);
Call Call=apiService.getModules(
“EYJ0Exaiioijkv1QILCHbGciijiuzi1NIJ9.EYJZDwiojmZcy6Yb3nLzxH0cmeuzG9ZZxJWlMnVbS5ICI9HcGkVyxV0Ac9Sb2DbIISimlHdCi6mJy1Njy1NiwizHwjjjjjjjJ0Njy2Nj2Nj2Nj2Nj2Nj2Nj1Nj2Nj2Nj2Nj2Nj2Nj2Uy2UyMj2Uy6Uy6UyMyMy1Nj1Nj2My1Nj1Nj1Nj0My0My0My2Nj0Nt2
);
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
moduleList=response.body();
Log.d(标记“onResponse-Call:”+response.body().getCards().get(0.getTitle());
Log.d(标记“onResponse-moduleList Size:+moduleList.getCards().Size());
对于(int i=0;i
如果需要更多的代码,请告诉我。因为initData()代码>函数执行异步操作,完成后需要通知适配器。因此,基本上您需要在更新数据列表后调用mAdapter.notifyDataSetChanged()
。因为initData()代码>函数执行异步操作,完成后需要通知适配器。因此,基本上您需要在更新数据列表后调用mAdapter.notifyDataSetChanged()