마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

recyclerview + sqlite (E/RecyclerView: No adapter attached; skipping layout)

0 추천

[AllList.java]
private String a;
private String b;
private String c;
private String d;
private String e;
private String f;
private String g;
private String h;
private String i;
private String j;
private String k;
private String l;
private String m;
private int n;
private int o;
private int p;
private int q;
private int r;
private int s;
private int t;
이외 getter,setter,생성자

꿀개 (2,440 포인트) 님이 2019년 11월 21일 질문

1개의 답변

0 추천
Activity.java

SQLiteDatabase db;
String[] columns = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t"};
DetailAdapter adapter;
RecyclerView re;
List<AllList> list = new ArrayList<>();
DBHelper helper = new DBHelper(this,"dbName",null,1);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_detail );
re= findViewById( R.id.recyclerView );
re.setLayoutManager(new LinearLayoutManager(this));
adapter=new Adapter(this,list);
db = helper.getWritableDatabase();
Cursor c= db.rawQuery( "SELECT * FROM dbName ORDER BY b DESC" ,null);
while (c.moveToNext())
{
String a= c.getString( c.getColumnIndex( "a" ) ) ;
String b= c.getString( c.getColumnIndex( "b" ) );
String c= c.getString( c.getColumnIndex( "c" ) );
String d= c.getString( c.getColumnIndex( "d" ) );
String e= c.getString( c.getColumnIndex( "e" ) );
String f= c.getString( c.getColumnIndex( "f" ) );
String g= c.getString( c.getColumnIndex( "g" ) );
String h= c.getString( c.getColumnIndex( "h" ) );
String i= c.getString( c.getColumnIndex( "i" ) );
String j= c.getString( c.getColumnIndex( "j" ) ) ;
String k= c.getString( c.getColumnIndex( "k" ) );
String l= c.getString( c.getColumnIndex( "l" ) );
String m= c.getString( c.getColumnIndex( "m" ) );
int n= c.getInt( c.getColumnIndex( "n" ) );
int o= c.getInt( c.getColumnIndex( "o" ) );
int p= c.getInt( c.getColumnIndex( "p" ) );
int q= c.getInt( c.getColumnIndex( "q" ) );
int r= c.getInt( c.getColumnIndex( "r" ) );
int s= c.getInt( c.getColumnIndex( "s" ) );
int t= c.getInt( c.getColumnIndex( "t" ) );
AllList p=new AllList(a,b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t);
list.add(p);
}
if(!(list.size()<1))
{
re.setAdapter(adapter);
}
helper.close();
꿀개 (2,440 포인트) 님이 2019년 11월 21일 답변
[DetailAdapter.java]
private List<AllList> list;
private Context context;
public interface OnItemClickListener{
void onItemClick(View v,int position);
}
public OnItemClickListener Listener = null;

public void setOnItemClickListener(OnItemClickListener listener){
this.Listener = listener;
}
public class ViewHolder extends RecyclerView.ViewHolder{
TextView a;
TextView b;
Button n;
Button o;
Button p;
Button q;
Button r;
Button s;
Button t;
public ViewHolder(@NonNull View itemView) {
super( itemView );
a= itemView.findViewById( R.id.a);
b= itemView.findViewById( R.id.b);
n= itemView.findViewById( R.id.n);
o= itemView.findViewById( R.id.o);
p= itemView.findViewById( R.id.p);
q= itemView.findViewById( R.id.q);
r= itemView.findViewById( R.id.r);
s= itemView.findViewById( R.id.s);
t= itemView.findViewById( R.id.t);
itemView.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
int pos = getAdapterPosition();
if(pos != RecyclerView.NO_POSITION){
if(Listener !=null){
Listener.onItemClick(v, pos);
}
}
}
} );
}
}
public DetailAdapter(Context context, List<AllList> list){
this.context = context;
this.list = list;
}
@NonNull
@Override
public DetailAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclerview_detail,parent,false);
DetailAdapter.ViewHolder vh = new DetailAdapter.ViewHolder(view );
return vh;
}
@Override
public void onBindViewHolder(@NonNull DetailAdapter.ViewHolder holder, int position) {
AllList al = list.get(holder.getAdapterPosition());
holder.a.setText(al.a());
holder.b.setText(al.b());
holder.n.setText(al.n());
holder.o.setText(al.o());
holder.p.setText(al.p());
holder.q.setText(al.q());
holder.r.setText(al.r());
holder.s.setText(al.s());
holder.t.setText(al.t());
}
@Override
public int getItemCount() {
return (null != list ? list.size() : 0);
}
...