آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

عدم نمایش همه ایتم ها در RecyclerView (حل شد)

SeyyedH  9 سال پیش  9 سال پیش
0 0

توی این پروژه یه سری مقادیر از دیتابیس لوکال توی ریسایکلرویو نمایش داده میشن، مشکل اینه که فقط موقع اجرا فقط اولین داده نمایش داده میشه و بقیه رو نشون نمیده

کلاس اداپتور:

public class AdapterApp extends RecyclerView.Adapter<AdapterApp.AdapterViewHolder>{

public static class AdapterViewHolder extends RecyclerView.ViewHolder{

public TextView txtDescription;
public ViewGroup layoutRoot;
public TextView txtTitle;

public AdapterViewHolder(View itemView) {
super(itemView);
txtTitle = (TextView) itemView.findViewById(R.id.txtTitle);
txtDescription = (TextView) itemView.findViewById(R.id.txtDesc);
layoutRoot = (ViewGroup) itemView.findViewById(R.id.layoutRoot);

}
}

private ArrayList<StructApp> names = new ArrayList<StructApp>();

public AdapterApp(ArrayList<StructApp> names){
this.names = names;
}

@Override
public AdapterViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View view = G.inflater.from(viewGroup.getContext()).inflate(R.layout.adapter_app,viewGroup,false);
return new AdapterViewHolder(view);
}

@Override
public void onBindViewHolder(final AdapterViewHolder adapterViewHolder, final int i) {
final StructApp name = names.get(i);
adapterViewHolder.txtTitle.setText(name.title);
adapterViewHolder.layoutRoot.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(G.currentActivity,ActivityDesc.class);
intent.putExtra("description",name.description);
G.currentActivity.startActivity(intent);
}
});

}

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



@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
}
}
 

کلاس G:

public class G extends Application {
public static Context context;
public static LayoutInflater inflater;
public static Activity currentActivity;
public static ArrayList<StructApp> reshte = new ArrayList<StructApp>();


public static final String DIR_SDCARD = Environment.getExternalStorageDirectory().getAbsolutePath();
public static String DIR_APP = DIR_SDCARD + "/database";

@Override
public void onCreate() {
super.onCreate();

context =getApplicationContext();
inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
new File(DIR_APP).mkdirs();
}
}
 

کلاس اصلی:

public class ActivityTitleEngineer extends ActivityEnhanced {

private RecyclerView recyclerView;
private AdapterApp adapter;

private ArrayList<StructApp> applications = new ArrayList<>();

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_reshte_math);



recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
recyclerView.setHasFixedSize(true);
LinearLayoutManager manager = new LinearLayoutManager(G.context);
manager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(manager);
adapter = new AdapterApp(G.reshte);
populateFromDatabase();
recyclerView.setAdapter(adapter);


}


private void populateFromDatabase() {
G.reshte.clear();
DataBaseConnection db = new DataBaseConnection(this, "database", 4);
final SQLiteDatabase database = db.getReadableDatabase();

Cursor cursor = database.rawQuery("SELECT * FROM Reshte ", null);
while (cursor.moveToNext()) {
StructApp application = new StructApp();
application.description = cursor.getString(cursor.getColumnIndex("description"));
application.title = cursor.getString(cursor.getColumnIndex("title"));


G.reshte.add(application);
}
cursor.close();

}
}
 
+2 0
ظاهرا همه چیز درست است ، در adapter_app.xml ارتفاع آیتم ها را warp content قرار بدید (9 سال پیش)
0 0
ممنون از راهنماییتون، بله مشکل از همون ارتفاع adapter_app.xml بود (9 سال پیش)
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .