Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无适配器连接;从RecycleView跳过布局_Java_Android_Sqlite_Adapter - Fatal编程技术网

Java 无适配器连接;从RecycleView跳过布局

Java 无适配器连接;从RecycleView跳过布局,java,android,sqlite,adapter,Java,Android,Sqlite,Adapter,我尝试了一些在这个网站上发布的错误解决方案,但没有人帮助我。 我明白了: RecyclerView:未连接适配器;跳过布局 我要显示的RecycleView也是空的。 这是我的代码: CardAdapter.java public class CardAdapter extends RecyclerView.Adapter<CardAdapter.CartaViewHolder> { private Context mainContext; private List<DBP

我尝试了一些在这个网站上发布的错误解决方案,但没有人帮助我。 我明白了:

RecyclerView:未连接适配器;跳过布局

我要显示的RecycleView也是空的。 这是我的代码:

CardAdapter.java

public class CardAdapter extends RecyclerView.Adapter<CardAdapter.CartaViewHolder> {

private Context mainContext;
private  List<DBPronosticos> items;

public CardAdapter(List<DBPronosticos> items, Context contexto) {
    this.mainContext = contexto;
    this.items = items;
}

class CartaViewHolder extends RecyclerView.ViewHolder{
    public TextView tipster;
    public TextView fecha;
    public TextView apuesta;
    public TextView cuota;
    public TextView resultado;
    public TextView pronostico;
    public TextView encuentro;


    public CartaViewHolder(View itemView) {
        super(itemView);

        tipster = (TextView) itemView.findViewById(R.id.tipsterpronostico);
        fecha = (TextView) itemView.findViewById(R.id.fechapronostico);
        apuesta = (TextView) itemView.findViewById(R.id.dineropronostico);
        cuota = (TextView) itemView.findViewById(R.id.multiplicadorpronostico);
        resultado = (TextView) itemView.findViewById(R.id.elresultado);
        pronostico = (TextView) itemView.findViewById(R.id.elpronostico);
        encuentro = (TextView) itemView.findViewById(R.id.elencuentro);

    }
}
/**
 * creamos la card o targeta
 * @param viewGroup
 * @param viewType
 * @return
 */
@Override
public CartaViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {

    View v = LayoutInflater.from(viewGroup.getContext())
            .inflate(R.layout.pronostico, viewGroup, false);

    return new CartaViewHolder(v);
}

/**
 * Este metodo actualiza el RecyclerView.ViewHolder
 * @param viewHolder
 * @param position
 */
@Override
public void onBindViewHolder(CartaViewHolder viewHolder, int position) {
    DBPronosticos item = items.get(position);
    viewHolder.itemView.setTag(item);
    viewHolder.tipster.setText(item.getNombre_tipster());
    viewHolder.fecha.setText(item.getFecha());
    viewHolder.apuesta.setText(String.valueOf(item.getCantidad_apuesta()));
    viewHolder.cuota.setText(String.valueOf(item.getCuota()));
    viewHolder.resultado.setText("???");
    viewHolder.pronostico.setText(item.getApuesta());
    viewHolder.encuentro.setText(item.getEncuentro());


}

@Override
public int getItemCount() {
    return items.size();
}


}
公共类CardAdapter扩展了RecyclerView.Adapter{ 私人语境; 私人清单项目; 公共卡适配器(列表项,上下文){ this.mainContext=contexto; 这个项目=项目; } 类CartaViewHolder扩展了RecyclerView.ViewHolder{ 公共文本视图信息提供者; 公共文本视图fecha; 公共文本视图apuesta; 公共文本视图; 公共文本视图结果; 公共文本视图pronostico; 公共文本视图; 公共CartaViewHolder(视图项视图){ 超级(项目视图); tipster=(TextView)itemView.findViewById(R.id.tipsterpronostico); fecha=(TextView)itemviewbyd(R.id.fechapronostico); apuesta=(TextView)itemView.findViewById(R.id.dinerotronostico); cuota=(TextView)itemView.findViewById(R.id.multipadorPronostico); resultado=(TextView)itemView.findViewById(R.id.elresultado); pronostico=(TextView)itemView.findViewById(R.id.elpronostico); encumentro=(TextView)itemView.findViewById(R.id.elencumentro); } } /** *塔吉塔酒店 *@param视图组 *@param-viewType *@返回 */ @凌驾 公共CartaViewHolder onCreateViewHolder(ViewGroup ViewGroup,int viewType){ 视图v=LayoutInflater.from(viewGroup.getContext()) .充气(R.layout.pronostico,视图组,false); 返回新的CartaViewHolder(v); } /** *Este metodo Realiza el RecyclerView.ViewHolder *@param-viewHolder *@param位置 */ @凌驾 BindViewHolder上的公共无效(CartaViewHolder视图持有人,内部位置){ DBPronosticos item=items.get(位置); viewHolder.itemView.setTag(项目); viewHolder.tipster.setText(item.getNombre_tipster()); viewHolder.fecha.setText(item.getFecha()); viewHolder.apuesta.setText(String.valueOf(item.getCantidad_apuesta()); viewHolder.cuota.setText(String.valueOf(item.getCuota()); viewHolder.resultado.setText(“?”); viewHolder.pronostico.setText(item.getApuesta()); viewHolder.encumentro.setText(item.getencumentro()); } @凌驾 public int getItemCount(){ 返回items.size(); } } Pronosticos.java

public class Pronosticos extends Fragment {
ActionBar actionBar;
private AdView mAdView;
private List<DBPronosticos> listaItemsCursos;
private RecyclerView.LayoutManager lManager;
private RecyclerView recycler;
private CardAdapter adapter;
DataBase managerCurso;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    // Inflate the layout for this fragment

    return inflater.inflate(R.layout.fragment_pronosticos, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
Toolbar toolbar = (android.support.v7.widget.Toolbar) view.findViewById(R.id.toolbar);
((MainActivity)getActivity()).setSupportActionBar(toolbar);
actionBar = ((MainActivity)getActivity()).getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
Drawable drawable = ResourcesCompat.getDrawable(getResources(), R.drawable.ic_dehaze_black_24dp, null);
drawable = DrawableCompat.wrap(drawable);
DrawableCompat.setTint(drawable, Color.WHITE);
actionBar.setHomeAsUpIndicator(drawable);
actionBar.setHomeAsUpIndicator(drawable);
((MainActivity) getActivity()).getSupportActionBar().setTitle("Pronosticos");
final FloatingActionMenu fab = (FloatingActionMenu) view.findViewById(R.id.actividadpronosticos);
fab.setClosedOnTouchOutside(true);
FloatingActionButton tip = (FloatingActionButton) view.findViewById(R.id.pronostico);
tip.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        Intent i = new Intent((MainActivity) getActivity(), AddPick.class);
        startActivity(i);
    }
});
managerCurso = new DataBase((MainActivity)getActivity());
listaItemsCursos = managerCurso.getCursosList();
// Obtener el Recycler
recycler = (RecyclerView) view.findViewById(R.id.reciclador);
recycler.setHasFixedSize(true);
// Usar un administrador para LinearLayout
lManager = new LinearLayoutManager((MainActivity)getActivity());
recycler.setLayoutManager(lManager);
// Crear un nuevo adaptador
adapter = new CardAdapter(listaItemsCursos, (MainActivity)getActivity());
recycler.setAdapter(adapter);
recycler.setItemAnimator(new DefaultItemAnimator());


}
}
公共类Pronosticos扩展片段{
ActionBar ActionBar;
私人顾问马德维尤;
私人名单;
private RecyclerView.LayoutManager lManager;
私人废物回收公司;
专用卡适配器;
数据库管理器;
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
//为该碎片膨胀布局
返回充气机。充气(R.layout.fragment_pronosticos,容器,假);
}
@凌驾
已创建视图上的公共void(视图,捆绑保存状态){
super.onViewCreated(视图,savedInstanceState);
Toolbar-Toolbar=(android.support.v7.widget.Toolbar)view.findviewbyd(R.id.Toolbar);
((MainActivity)getActivity()).setSupportActionBar(工具栏);
actionBar=((MainActivity)getActivity()).getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
Drawable Drawable=ResourcesCompat.getDrawable(getResources(),R.Drawable.ic_dehaze_black_24dp,null);
可拉伸=可拉伸兼容包装(可拉伸);
可拉拔相容色(可拉拔,颜色为白色);
actionBar.setHomeAsUpIndicator(可绘制);
actionBar.setHomeAsUpIndicator(可绘制);
((MainActivity)getActivity()).getSupportActionBar().setTitle(“Pronosticos”);
final FloatingActionMenu fab=(FloatingActionMenu)view.findviewbyd(R.id.actividadpronosticos);
制造厂setClosedOnTouchOutside(真实);
FloatingActionButton tip=(FloatingActionButton)view.findViewById(R.id.pronostico);
setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
Intent i=新Intent((MainActivity)getActivity(),AddPick.class);
星触觉(i);
}
});
managerCurso=新数据库((MainActivity)getActivity());
listaItemsCursos=managerCurso.getcursolist();
//奥贝纳回收器
recycler=(RecyclerView)view.findViewById(R.id.reciclador);
回收商。setHasFixedSize(真);
//Usar联合国行政人员或准直线布局
lManager=newlinearlayoutmanager((MainActivity)getActivity());
回收商。setLayoutManager(lManager);
//新适配器
adapter=新卡适配器(listaitemscrossos,(MainActivity)getActivity());
回收器。设置适配器(适配器);
setItemAnimator(新的DefaultItemAnimator());
}
}
pronostico.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:orientation="vertical">

<android.support.v7.widget.CardView
    android:id="@+id/card2"
    android:layout_width="match_parent"
    android:layout_height="200dp">

    <RelativeLayout
        android:background="@drawable/shape"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    <ImageView
        android:id="@+id/txt1"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:padding="10dp"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop"
        android:src="@drawable/ic_action_name"
        android:text="Tipster" />

        <TextView
            android:text="Tipster"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tipsterpronostico"
            android:layout_marginBottom="11dp"
            android:layout_alignBottom="@+id/txt1"
            android:layout_toRightOf="@+id/txt1"
            android:layout_toEndOf="@+id/txt1" />

        <TextView
            android:text="Fecha"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/tipsterpronostico"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"
            android:layout_marginRight="25dp"
            android:layout_marginEnd="25dp"
            android:id="@+id/fechapronostico" />

        <TextView
            android:text="Apuesta"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textStyle="bold"
            android:layout_alignParentBottom="true"
            android:layout_marginBottom="48dp"
            android:id="@+id/apuestapronostico"
            android:layout_alignRight="@+id/tipsterpronostico"
            android:layout_alignEnd="@+id/tipsterpronostico" />

        <TextView
            android:layout_width="120dp"
            android:gravity="center"
            android:textSize="17dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="22dp"
            android:id="@+id/dineropronostico"
            android:text="300€"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />

        <TextView
            android:text="Cuota"
            android:textStyle="bold"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/cuotapronostico"
            android:layout_alignBaseline="@+id/apuestapronostico"
            android:layout_alignBottom="@+id/apuestapronostico"
            android:layout_centerHorizontal="true" />

        <TextView
            android:text="Pronóstico"
            android:textStyle="bold"
            android:gravity="center"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/tipsterpronostico"
            android:id="@+id/elpronostico"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"
            android:layout_above="@+id/elencuentro" />

        <TextView
            android:text="Encuentro"
            android:gravity="center"
            android:layout_width="wrap_content"
            android:id="@+id/elencuentro"
            android:layout_height="40dp"
            android:layout_above="@+id/apuestapronostico"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />

        <TextView
            android:text="5.0"
            android:gravity="center"
            android:layout_height="wrap_content"
            android:id="@+id/multiplicadorpronostico"
            android:layout_width="120dp"
            android:layout_alignTop="@+id/dineropronostico"
            android:layout_centerHorizontal="true" />

        <TextView
            android:text="Resultado"
            android:layout_width="wrap_content"
            android:gravity="center"
            android:textStyle="bold"
            android:layout_height="wrap_content"
            android:id="@+id/resultadopronostico"
            android:layout_alignBaseline="@+id/cuotapronostico"
            android:layout_alignBottom="@+id/cuotapronostico"
            android:layout_alignRight="@+id/fechapronostico"
            android:layout_alignEnd="@+id/fechapronostico"
            android:layout_toRightOf="@+id/multiplicadorpronostico"
            android:layout_toEndOf="@+id/multiplicadorpronostico" />

        <TextView
            android:text="-300€"
            android:layout_width="wrap_content"
            android:gravity="center"
            android:layout_height="wrap_content"
            android:id="@+id/elresultado"
            android:layout_alignBaseline="@+id/multiplicadorpronostico"
            android:layout_alignBottom="@+id/multiplicadorpronostico"
            android:layout_alignRight="@+id/resultadopronostico"
            android:layout_alignEnd="@+id/resultadopronostico"
            android:layout_toRightOf="@+id/multiplicadorpronostico"
            android:layout_toEndOf="@+id/multiplicadorpronostico" />

    </RelativeLayout>
</android.support.v7.widget.CardView>

</LinearLayout>

fragment_pronosticos.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:fab="http://schemas.android.com/apk/res-auto"
android:layout_height="match_parent"
android:layout_width="match_parent">
<RelativeLayout
    android:layout_width="match_parent"
    android:id="@+id/relativo"
    android:layout_height="56dp">

    <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/toolbar"
        android:layout_height="match_parent"
        popupTheme="@style/ToolbarTheme"
        android:layout_width="match_parent"
        android:minHeight="?attr/actionBarSize"
        android:background="?attr/colorPrimary" />

</RelativeLayout>
<android.support.v7.widget.RecyclerView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/reciclador"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="3dp"
    android:scrollbars="vertical"
    android:layout_below="@+id/relativo" />
<com.github.clans.fab.FloatingActionMenu
    android:id="@+id/actividadpronosticos"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_marginBottom="20dp"
    android:layout_marginLeft="11dp"
    android:layout_marginRight="11dp"
    fab:menu_animationDelayPerItem="55"
    fab:menu_backgroundColor="@android:color/transparent"
    fab:menu_buttonSpacing="0dp"
    fab:menu_colorNormal="#da3c2f"
    fab:menu_colorPressed="#dc4b3f"
    fab:menu_colorRipple="#99d4d4d4"
    fab:menu_fab_size="normal"
    fab:menu_icon="@drawable/fab_add"
    fab:menu_labels_colorNormal="#333"
    fab:menu_labels_colorPressed="#444"
    fab:menu_labels_colorRipple="#66efecec"
    fab:menu_labels_cornerRadius="3dp"
    fab:menu_labels_ellipsize="none"
    fab:menu_labels_hideAnimation="@anim/fab_slide_out_to_right"
    fab:menu_labels_margin="0dp"
    fab:menu_labels_maxLines="-1"
    fab:menu_labels_padding="8dp"
    fab:menu_labels_position="left"
    fab:menu_labels_showAnimation="@anim/fab_slide_in_from_right"
    fab:menu_labels_showShadow="true"
    fab:menu_labels_singleLine="false"
    fab:menu_labels_textColor="#f2f1f1"
    fab:menu_labels_textSize="15sp"
    fab:menu_openDirection="up"
    fab:menu_shadowRadius="4dp"
    fab:menu_shadowXOffset="1dp"
    fab:menu_shadowYOffset="4dp"
    fab:menu_showShadow="true">

    <com.github.clans.fab.FloatingActionButton
        android:id="@+id/pronostico"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/fab_add"
        fab:fab_label="Añadir Pronóstico"
        fab:fab_size="mini" />

</com.github.clans.fab.FloatingActionMenu>


</RelativeLayout>

是DataBase.java的一部分

public Cursor GetAllPickData()
{
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor c = db.rawQuery("SELECT * FROM pronostico;", null);
    return c;
}
public List<DBPronosticos> getCursosList(){
    List<DBPronosticos>  list= new ArrayList<>();

    Cursor c= this.GetAllPickData();


    while (c.moveToNext()){
        DBPronosticos curso = new DBPronosticos();

        curso.setFecha(c.getString(1));
        curso.setNombre_tipster(c.getString(3));
        curso.setEncuentro(c.getString(4));
        curso.setApuesta(c.getString(4));
        curso.setCuota(c.getDouble(4));
        curso.setCantidad_apuesta(c.getDouble(4));
        curso.setResultado(c.getString(4));
    }

    return list;

}
公共游标GetAllPickData()
{
SQLiteDatabase db=this.getReadableDatabase();
游标c=db.rawQuery(“从pronostico中选择*”,null);
返回c;
}
公共列表getCursorList(){
列表=新的ArrayList();
游标c=this.GetAllPickData();
while(c.moveToNext()){
DBPronosticos curso=新的DBPronosticos();
curso.setFecha(c.getString(1));
curso.setNombre_tipster(c.getString(3));
curso.setEncuentro(c.getString(4));
curso.setApuesta(c.getString(4));
(c.getDouble(4));
(c.getDouble(4));
curso.setResultado(c.getString(4));
}
退货清单;
}

确保绑定到适配器的列表不为空。您可以将空列表分配给适配器并通知更新。此外,您没有将变量“curso”添加到此处的列表中:

while (c.moveToNext()){
    DBPronosticos curso = new DBPronosticos();

    curso.setFecha(c.getString(1));
    curso.setNombre_tipster(c.getString(3));
    curso.setEncuentro(c.getString(4));
    curso.setApuesta(c.getString(4));
    curso.setCuota(c.getDouble(4));
    curso.setCantidad_apuesta(c.getDouble(4));
    curso.setResultado(c.getString(4));

   //Add this line  
   list.add(curso);
}

我应该添加你的评论吗?我一点也不懂你的意思。谢谢@DannyGM16是的,对不起,我将编辑答案以使其更清楚。很高兴它成功了:)