Java 在片段中有卡片的Recyclerview没有显示任何内容

Java 在片段中有卡片的Recyclerview没有显示任何内容,java,android,android-fragments,android-recyclerview,Java,Android,Android Fragments,Android Recyclerview,我正在尝试制作一个活动,其中包含一个片段,上面有一个recyclerView和cards。现在,它只显示了活动,片段是空的,我不知道这里发生了什么 这是活动、片段和适配器 活动: package com.laorden.goodreasons.habits; import android.content.Intent; import android.os.Bundle; import android.support.annotation.VisibleForTesting; import an

我正在尝试制作一个活动,其中包含一个片段,上面有一个
recyclerView
cards
。现在,它只显示了活动,片段是空的,我不知道这里发生了什么

这是
活动
片段
适配器

活动:

package com.laorden.goodreasons.habits;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.VisibleForTesting;
import android.support.design.widget.NavigationView;
import android.support.test.espresso.IdlingResource;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.view.Window;
import android.view.WindowManager;

import com.laorden.goodreasons.Injection;
import com.laorden.goodreasons.R;
import com.laorden.goodreasons.statistics.StatisticsActivity;
import com.laorden.goodreasons.util.ActivityUtils;
import com.laorden.goodreasons.util.EspressoIdlingResource;

public class HabitsActivity extends AppCompatActivity {

    private DrawerLayout mDrawerLayout;
    private HabitsPresenter mHabitsPresenter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.habits_act);
        Window w = getWindow();
        w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);


        // Set up the toolbar.
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        ActionBar ab = getSupportActionBar();
        ab.setHomeAsUpIndicator(R.drawable.ic_menu);
        ab.setDisplayHomeAsUpEnabled(true);

        // Set up the navigation drawer.
        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        mDrawerLayout.setStatusBarBackground(R.color.colorPrimaryDark);
        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        if (navigationView != null) {
            setupDrawerContent(navigationView);
        }

        HabitsFragment habitsFragment =
                (HabitsFragment) getSupportFragmentManager().findFragmentById(R.id.contentFrame);
        if (habitsFragment == null) {
            // Create the fragment
            habitsFragment = HabitsFragment.newInstance();
            ActivityUtils.addFragmentToActivity(
                    getSupportFragmentManager(), habitsFragment, R.id.contentFrame);
        }

        // Create the presenter
        mHabitsPresenter = new HabitsPresenter(habitsFragment,
                Injection.provideUseCaseHandler());
    }
      /*  // Load previously saved state, if available.
        if (savedInstanceState != null) {
            TasksFilterType currentFiltering =
                    (TasksFilterType) savedInstanceState.getSerializable(CURRENT_FILTERING_KEY);
            mTasksPresenter.setFiltering(currentFiltering);
        }
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        outState.putSerializable(CURRENT_FILTERING_KEY, mTasksPresenter.getFiltering());

        super.onSaveInstanceState(outState);
    }*/


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                // Open the navigation drawer when the home icon is selected from the toolbar.
                mDrawerLayout.openDrawer(GravityCompat.START);
                return true;
        }
        return super.onOptionsItemSelected(item);
    }

    private void setupDrawerContent(NavigationView navigationView) {
        navigationView.setNavigationItemSelectedListener(
                new NavigationView.OnNavigationItemSelectedListener() {
                    @Override
                    public boolean onNavigationItemSelected(MenuItem menuItem) {
                        switch (menuItem.getItemId()) {
                            case R.id.list_navigation_menu_item:
                                // Do nothing, we're already on that screen
                                break;
                            case R.id.statistics_navigation_menu_item:
                                Intent intent =
                                        new Intent(HabitsActivity.this, StatisticsActivity.class);
                                startActivity(intent);
                                break;
                            default:
                                break;
                        }
                        // Close the navigation drawer when an item is selected.
                        menuItem.setChecked(true);
                        mDrawerLayout.closeDrawers();
                        return true;
                    }
                });
    }

    @VisibleForTesting
    public IdlingResource getCountingIdlingResource() {
        return EspressoIdlingResource.getIdlingResource();
    }
}
package com.laorden.goodreasons.habits;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;

import com.laorden.goodreasons.R;
import com.laorden.goodreasons.habits.domain.model.Habit;

import java.util.ArrayList;
import java.util.List;

public class HabitsFragment extends android.support.v4.app.Fragment implements HabitsContract.View  {


private HabitsContract.Presenter mPresenter;

private HabitsAdapter mListAdapter;
private RecyclerView recyclerView;


public HabitsFragment() {
    // Requires empty public constructor
}

public static HabitsFragment newInstance() {
    return new HabitsFragment();
}


@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    List<Habit> habitsList = new ArrayList<>();
    habitsList.add(new Habit(R.drawable.smoke,"Quit smoking",300));
    habitsList.add(new Habit(R.drawable.books,"Read more",600));
    habitsList.add(new Habit(R.drawable.sleep,"Get more sleep",600));
    mListAdapter = new HabitsAdapter(getContext(),habitsList);
}



@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View root = inflater.inflate(R.layout.habits_frag, container, false);
    recyclerView = root.findViewById(R.id.rv_list);

    recyclerView.setAdapter(mListAdapter);
    recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
    return root;
}


@Override
public void onResume() {
    super.onResume();
    mPresenter.start();
}


@Override
public void setLoadingIndicator(boolean active) {

}

@Override
public void showHabits(List<Habit> habits) {

}

@Override
public void showHabitDetailsUi(String habitId) {

}

@Override
public boolean isActive() {
    return false;
}

@Override
public void setPresenter(HabitsContract.Presenter presenter) {
    mPresenter = presenter;
}
}
package com.laorden.goodreasons.habits;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.laorden.goodreasons.R;
import com.laorden.goodreasons.habits.domain.model.Habit;

import java.util.List;


public class HabitsAdapter extends RecyclerView.Adapter<HabitsAdapter.myViewHolder> {

    Context mContext;
    List<Habit> mData;


    public HabitsAdapter(Context mContext, List<Habit> mData) {
        this.mContext = mContext;
        this.mData = mData;
    }

    @Override
    public myViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        LayoutInflater inflater = LayoutInflater.from(mContext);
        View v = inflater.inflate(R.layout.card_item,parent,false);
        return new myViewHolder(v);
    }

    @Override
    public void onBindViewHolder(myViewHolder holder, int position) {
        holder.background_image.setImageResource(mData.get(position).getBackground());
        holder.tv_title.setText(mData.get(position).getHabitName());
        holder.tv_nbSubscribers.setText(mData.get(position).getNumSubscribers() + " Joined");
    }

    @Override
    public int getItemCount() {
        return 0;
    }

    public class myViewHolder extends RecyclerView.ViewHolder {

        ImageView background_image;
        TextView tv_title,tv_nbSubscribers;

        public myViewHolder(View itemView) {
            super(itemView);
            background_image = itemView.findViewById(R.id.card_background);
            tv_title = itemView.findViewById(R.id.card_title);
            tv_nbSubscribers = itemView.findViewById(R.id.card_numberUsers);
        }
    }

}
片段:

package com.laorden.goodreasons.habits;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.VisibleForTesting;
import android.support.design.widget.NavigationView;
import android.support.test.espresso.IdlingResource;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.view.Window;
import android.view.WindowManager;

import com.laorden.goodreasons.Injection;
import com.laorden.goodreasons.R;
import com.laorden.goodreasons.statistics.StatisticsActivity;
import com.laorden.goodreasons.util.ActivityUtils;
import com.laorden.goodreasons.util.EspressoIdlingResource;

public class HabitsActivity extends AppCompatActivity {

    private DrawerLayout mDrawerLayout;
    private HabitsPresenter mHabitsPresenter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.habits_act);
        Window w = getWindow();
        w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);


        // Set up the toolbar.
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        ActionBar ab = getSupportActionBar();
        ab.setHomeAsUpIndicator(R.drawable.ic_menu);
        ab.setDisplayHomeAsUpEnabled(true);

        // Set up the navigation drawer.
        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        mDrawerLayout.setStatusBarBackground(R.color.colorPrimaryDark);
        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        if (navigationView != null) {
            setupDrawerContent(navigationView);
        }

        HabitsFragment habitsFragment =
                (HabitsFragment) getSupportFragmentManager().findFragmentById(R.id.contentFrame);
        if (habitsFragment == null) {
            // Create the fragment
            habitsFragment = HabitsFragment.newInstance();
            ActivityUtils.addFragmentToActivity(
                    getSupportFragmentManager(), habitsFragment, R.id.contentFrame);
        }

        // Create the presenter
        mHabitsPresenter = new HabitsPresenter(habitsFragment,
                Injection.provideUseCaseHandler());
    }
      /*  // Load previously saved state, if available.
        if (savedInstanceState != null) {
            TasksFilterType currentFiltering =
                    (TasksFilterType) savedInstanceState.getSerializable(CURRENT_FILTERING_KEY);
            mTasksPresenter.setFiltering(currentFiltering);
        }
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        outState.putSerializable(CURRENT_FILTERING_KEY, mTasksPresenter.getFiltering());

        super.onSaveInstanceState(outState);
    }*/


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                // Open the navigation drawer when the home icon is selected from the toolbar.
                mDrawerLayout.openDrawer(GravityCompat.START);
                return true;
        }
        return super.onOptionsItemSelected(item);
    }

    private void setupDrawerContent(NavigationView navigationView) {
        navigationView.setNavigationItemSelectedListener(
                new NavigationView.OnNavigationItemSelectedListener() {
                    @Override
                    public boolean onNavigationItemSelected(MenuItem menuItem) {
                        switch (menuItem.getItemId()) {
                            case R.id.list_navigation_menu_item:
                                // Do nothing, we're already on that screen
                                break;
                            case R.id.statistics_navigation_menu_item:
                                Intent intent =
                                        new Intent(HabitsActivity.this, StatisticsActivity.class);
                                startActivity(intent);
                                break;
                            default:
                                break;
                        }
                        // Close the navigation drawer when an item is selected.
                        menuItem.setChecked(true);
                        mDrawerLayout.closeDrawers();
                        return true;
                    }
                });
    }

    @VisibleForTesting
    public IdlingResource getCountingIdlingResource() {
        return EspressoIdlingResource.getIdlingResource();
    }
}
package com.laorden.goodreasons.habits;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;

import com.laorden.goodreasons.R;
import com.laorden.goodreasons.habits.domain.model.Habit;

import java.util.ArrayList;
import java.util.List;

public class HabitsFragment extends android.support.v4.app.Fragment implements HabitsContract.View  {


private HabitsContract.Presenter mPresenter;

private HabitsAdapter mListAdapter;
private RecyclerView recyclerView;


public HabitsFragment() {
    // Requires empty public constructor
}

public static HabitsFragment newInstance() {
    return new HabitsFragment();
}


@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    List<Habit> habitsList = new ArrayList<>();
    habitsList.add(new Habit(R.drawable.smoke,"Quit smoking",300));
    habitsList.add(new Habit(R.drawable.books,"Read more",600));
    habitsList.add(new Habit(R.drawable.sleep,"Get more sleep",600));
    mListAdapter = new HabitsAdapter(getContext(),habitsList);
}



@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View root = inflater.inflate(R.layout.habits_frag, container, false);
    recyclerView = root.findViewById(R.id.rv_list);

    recyclerView.setAdapter(mListAdapter);
    recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
    return root;
}


@Override
public void onResume() {
    super.onResume();
    mPresenter.start();
}


@Override
public void setLoadingIndicator(boolean active) {

}

@Override
public void showHabits(List<Habit> habits) {

}

@Override
public void showHabitDetailsUi(String habitId) {

}

@Override
public boolean isActive() {
    return false;
}

@Override
public void setPresenter(HabitsContract.Presenter presenter) {
    mPresenter = presenter;
}
}
package com.laorden.goodreasons.habits;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.laorden.goodreasons.R;
import com.laorden.goodreasons.habits.domain.model.Habit;

import java.util.List;


public class HabitsAdapter extends RecyclerView.Adapter<HabitsAdapter.myViewHolder> {

    Context mContext;
    List<Habit> mData;


    public HabitsAdapter(Context mContext, List<Habit> mData) {
        this.mContext = mContext;
        this.mData = mData;
    }

    @Override
    public myViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        LayoutInflater inflater = LayoutInflater.from(mContext);
        View v = inflater.inflate(R.layout.card_item,parent,false);
        return new myViewHolder(v);
    }

    @Override
    public void onBindViewHolder(myViewHolder holder, int position) {
        holder.background_image.setImageResource(mData.get(position).getBackground());
        holder.tv_title.setText(mData.get(position).getHabitName());
        holder.tv_nbSubscribers.setText(mData.get(position).getNumSubscribers() + " Joined");
    }

    @Override
    public int getItemCount() {
        return 0;
    }

    public class myViewHolder extends RecyclerView.ViewHolder {

        ImageView background_image;
        TextView tv_title,tv_nbSubscribers;

        public myViewHolder(View itemView) {
            super(itemView);
            background_image = itemView.findViewById(R.id.card_background);
            tv_title = itemView.findViewById(R.id.card_title);
            tv_nbSubscribers = itemView.findViewById(R.id.card_numberUsers);
        }
    }

}
package com.laorden.goodreasons.habits;
导入android.os.Bundle;
导入android.support.annotation.Nullable;
导入android.support.v7.widget.LinearLayoutManager;
导入android.support.v7.widget.RecyclerView;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.view.Window;
导入android.view.WindowManager;
导入com.laorden.goodreasons.R;
导入com.laorden.goodreasons.habits.domain.model.habity;
导入java.util.ArrayList;
导入java.util.List;
公共类HabitsFragment扩展了android.support.v4.app.Fragment实现了HabitsContract.View{
私人HabitsContract.演示者和演示者;
私人住宅适配器MLISTAAdapter;
私人回收站;
公共习惯片段(){
//需要空的公共构造函数
}
公共静态HabitsFragment newInstance(){
返回新的HabitsFragment();
}
@凌驾
创建时的公共void(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
List habitsList=新建ArrayList();
添加(新习惯(R.drawable.smoke,“戒烟”,300);
添加(新习惯(R.drawable.books,“阅读更多”,600);
添加(新习惯(R.drawable.sleep,“获得更多睡眠”,600);
mListAdapter=newhabitsadapter(getContext(),habitsList);
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图根=充气机。充气(R.layout.habits\u frag,容器,错误);
recyclerView=root.findViewById(R.id.rv_列表);
recyclerView.setAdapter(mListAdapter);
setLayoutManager(新的LinearLayoutManager(getContext());
返回根;
}
@凌驾
恢复时公开作废(){
super.onResume();
mPresenter.start();
}
@凌驾
public void setLoadingIndicator(布尔激活){
}
@凌驾
公共生活习惯(列出习惯){
}
@凌驾
公共void showHabitDetailsUi(字符串habitId){
}
@凌驾
公共布尔isActive(){
返回false;
}
@凌驾
public void setPresenter(HabitsContract.Presenter-Presenter){
mPresenter=演示者;
}
}
适配器:

package com.laorden.goodreasons.habits;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.VisibleForTesting;
import android.support.design.widget.NavigationView;
import android.support.test.espresso.IdlingResource;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.view.Window;
import android.view.WindowManager;

import com.laorden.goodreasons.Injection;
import com.laorden.goodreasons.R;
import com.laorden.goodreasons.statistics.StatisticsActivity;
import com.laorden.goodreasons.util.ActivityUtils;
import com.laorden.goodreasons.util.EspressoIdlingResource;

public class HabitsActivity extends AppCompatActivity {

    private DrawerLayout mDrawerLayout;
    private HabitsPresenter mHabitsPresenter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.habits_act);
        Window w = getWindow();
        w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);


        // Set up the toolbar.
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        ActionBar ab = getSupportActionBar();
        ab.setHomeAsUpIndicator(R.drawable.ic_menu);
        ab.setDisplayHomeAsUpEnabled(true);

        // Set up the navigation drawer.
        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        mDrawerLayout.setStatusBarBackground(R.color.colorPrimaryDark);
        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        if (navigationView != null) {
            setupDrawerContent(navigationView);
        }

        HabitsFragment habitsFragment =
                (HabitsFragment) getSupportFragmentManager().findFragmentById(R.id.contentFrame);
        if (habitsFragment == null) {
            // Create the fragment
            habitsFragment = HabitsFragment.newInstance();
            ActivityUtils.addFragmentToActivity(
                    getSupportFragmentManager(), habitsFragment, R.id.contentFrame);
        }

        // Create the presenter
        mHabitsPresenter = new HabitsPresenter(habitsFragment,
                Injection.provideUseCaseHandler());
    }
      /*  // Load previously saved state, if available.
        if (savedInstanceState != null) {
            TasksFilterType currentFiltering =
                    (TasksFilterType) savedInstanceState.getSerializable(CURRENT_FILTERING_KEY);
            mTasksPresenter.setFiltering(currentFiltering);
        }
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        outState.putSerializable(CURRENT_FILTERING_KEY, mTasksPresenter.getFiltering());

        super.onSaveInstanceState(outState);
    }*/


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                // Open the navigation drawer when the home icon is selected from the toolbar.
                mDrawerLayout.openDrawer(GravityCompat.START);
                return true;
        }
        return super.onOptionsItemSelected(item);
    }

    private void setupDrawerContent(NavigationView navigationView) {
        navigationView.setNavigationItemSelectedListener(
                new NavigationView.OnNavigationItemSelectedListener() {
                    @Override
                    public boolean onNavigationItemSelected(MenuItem menuItem) {
                        switch (menuItem.getItemId()) {
                            case R.id.list_navigation_menu_item:
                                // Do nothing, we're already on that screen
                                break;
                            case R.id.statistics_navigation_menu_item:
                                Intent intent =
                                        new Intent(HabitsActivity.this, StatisticsActivity.class);
                                startActivity(intent);
                                break;
                            default:
                                break;
                        }
                        // Close the navigation drawer when an item is selected.
                        menuItem.setChecked(true);
                        mDrawerLayout.closeDrawers();
                        return true;
                    }
                });
    }

    @VisibleForTesting
    public IdlingResource getCountingIdlingResource() {
        return EspressoIdlingResource.getIdlingResource();
    }
}
package com.laorden.goodreasons.habits;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;

import com.laorden.goodreasons.R;
import com.laorden.goodreasons.habits.domain.model.Habit;

import java.util.ArrayList;
import java.util.List;

public class HabitsFragment extends android.support.v4.app.Fragment implements HabitsContract.View  {


private HabitsContract.Presenter mPresenter;

private HabitsAdapter mListAdapter;
private RecyclerView recyclerView;


public HabitsFragment() {
    // Requires empty public constructor
}

public static HabitsFragment newInstance() {
    return new HabitsFragment();
}


@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    List<Habit> habitsList = new ArrayList<>();
    habitsList.add(new Habit(R.drawable.smoke,"Quit smoking",300));
    habitsList.add(new Habit(R.drawable.books,"Read more",600));
    habitsList.add(new Habit(R.drawable.sleep,"Get more sleep",600));
    mListAdapter = new HabitsAdapter(getContext(),habitsList);
}



@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View root = inflater.inflate(R.layout.habits_frag, container, false);
    recyclerView = root.findViewById(R.id.rv_list);

    recyclerView.setAdapter(mListAdapter);
    recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
    return root;
}


@Override
public void onResume() {
    super.onResume();
    mPresenter.start();
}


@Override
public void setLoadingIndicator(boolean active) {

}

@Override
public void showHabits(List<Habit> habits) {

}

@Override
public void showHabitDetailsUi(String habitId) {

}

@Override
public boolean isActive() {
    return false;
}

@Override
public void setPresenter(HabitsContract.Presenter presenter) {
    mPresenter = presenter;
}
}
package com.laorden.goodreasons.habits;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.laorden.goodreasons.R;
import com.laorden.goodreasons.habits.domain.model.Habit;

import java.util.List;


public class HabitsAdapter extends RecyclerView.Adapter<HabitsAdapter.myViewHolder> {

    Context mContext;
    List<Habit> mData;


    public HabitsAdapter(Context mContext, List<Habit> mData) {
        this.mContext = mContext;
        this.mData = mData;
    }

    @Override
    public myViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        LayoutInflater inflater = LayoutInflater.from(mContext);
        View v = inflater.inflate(R.layout.card_item,parent,false);
        return new myViewHolder(v);
    }

    @Override
    public void onBindViewHolder(myViewHolder holder, int position) {
        holder.background_image.setImageResource(mData.get(position).getBackground());
        holder.tv_title.setText(mData.get(position).getHabitName());
        holder.tv_nbSubscribers.setText(mData.get(position).getNumSubscribers() + " Joined");
    }

    @Override
    public int getItemCount() {
        return 0;
    }

    public class myViewHolder extends RecyclerView.ViewHolder {

        ImageView background_image;
        TextView tv_title,tv_nbSubscribers;

        public myViewHolder(View itemView) {
            super(itemView);
            background_image = itemView.findViewById(R.id.card_background);
            tv_title = itemView.findViewById(R.id.card_title);
            tv_nbSubscribers = itemView.findViewById(R.id.card_numberUsers);
        }
    }

}
package com.laorden.goodreasons.habits;
导入android.content.Context;
导入android.support.v7.widget.RecyclerView;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ImageView;
导入android.widget.TextView;
导入com.laorden.goodreasons.R;
导入com.laorden.goodreasons.habits.domain.model.habity;
导入java.util.List;
公共类HabitAdapter扩展了RecyclerView.Adapter{
语境;
列出mData;
公共习惯适配器(上下文mContext、列表mData){
this.mContext=mContext;
this.mData=mData;
}
@凌驾
公共myViewHolder onCreateViewHolder(视图组父级,int-viewType){
LayoutFlater充气机=LayoutFlater.from(mContext);
视图v=充气机。充气(右布局。卡片项目,父项,假);
返回新的myViewHolder(v);
}
@凌驾
公共无效onBindViewHolder(myViewHolder,int位置){
holder.background_image.setImageResource(mData.get(position.getBackground());
holder.tv_title.setText(mData.get(position.getHabitName());
holder.tv\nbSubscribers.setText(mData.get(position.getNumSubscribers()+“Joined”);
}
@凌驾
public int getItemCount(){
返回0;
}
公共类myViewHolder扩展了RecyclerView.ViewHolder{
图像查看背景图像;
text查看电视标题、电视订户;
公共myViewHolder(查看项目视图){
超级(项目视图);
background\u image=itemView.findviewbyd(R.id.card\u background);
tv\u title=itemView.findviewbyd(R.id.card\u title);
tv\u nbSubscribers=itemView.findviewbyd(R.id.card\u numbers);
}
}
}
如果您需要任何其他代码片段,请告诉我(可能是xml) 布局图)


谢谢

这是因为您在
getItemCount
方法中返回了0

更改此项:

@Override
 public int getItemCount() {
    return 0;
 }
为此:

@Override
 public int getItemCount() {
    return (mData != null ?  mData.size():0);
}

您应该首先设置布局管理器

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View root = inflater.inflate(R.layout.habits_frag, container, false);
    recyclerView = root.findViewById(R.id.rv_list);


    recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
    recyclerView.setAdapter(mListAdapter);
    return root;
}
您还需要将getItemCount更改为

@Override
    public int getItemCount() {
         if(mData!=null){return mData.size();}else return 0;
    }

获取空列表的原因是因为方法
getItemCount
返回0。 这是修改后的方法

@Override
public int getItemCount() {
    return mData!=null ? mData.size():0;
}

我个人使用
if(mData!=null){return mData.size();}else{return 0;}
谢谢大家,解决了!