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

مشکل با آداپتر RecyclerView

Smkm79  10 سال پیش  10 سال پیش
0 0

سلام، من کدهای RecyclerView رو نوشتم و برنامه بدون هیچ کرشی اجرا میشه ولی یه مشکلی هست که وقتی من یک متنی رو در شی ( مثل StructNote ) ذخیر میکنم و میرم توی اکتیویتی بعدی برای نمایشش ، همه اشیاء رو نشون نمیده ، بلکه اون شیئ که تازه ساختم رو نشون میده! 

توجه بفرمائید ؛

ActivityHistory.java

public class ActivityHistory extends AppCompatActivity {

    private RecyclerView recyclerview;
    private List mUserData;
    private RVAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_history);
        recyclerview = (RecyclerView) findViewById(R.id.recyclerview);
        LinearLayoutManager layoutManager = new LinearLayoutManager(G.mContext);
        recyclerview.setLayoutManager(layoutManager);
        mUsersData = new ArrayList<>();
        OpenHelper rb = new OpenHelper(G.mContext);
        List datas = rb.getAllUsers();
        for (User r : datas) {
            mUserData.add(new User(r.getUser()));
        }

        adapter = new RVAdapter(mUserData);
        recyclerview.setAdapter(adapter);
    }
}

RVAdapter.java

public class RVAdapter extends RecyclerView.Adapter {

    private List mUser;

    public RVAdapter(List Users) {
        this.mUser = Users;
    }

    @Override
    public void onBindViewHolder(ItemViewHolder itemViewHolder, int i) {
        final User model = mUser.get(i);
        itemViewHolder.bind(model);
    }

    @Override
    public ItemViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.recycle_row, viewGroup, false);
        return new ItemViewHolder(view);
    }

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

ItemViewHolder

public class ItemViewHolder extends RecyclerView.ViewHolder {

    public TextView name_TextView;

    public ItemViewHolder(View itemView) {
        super(itemView);
        itemView.setClickable(true);
        name_TextView = (TextView) itemView.findViewById(R.id.txt_title);

    }

    public void bind(User data) {
        name_TextView.setText(data.getUser());
    }
}

User.java

public class User {
    private static int id;
    private static String user;

    public User(int ID, String User) {
        id = ID;
        user = User;
    }

    public User(String User) {
        user = User;
    }

    public User() {
    }

    public static int getId() {
        return id;
    }

    public static void setId(int id) {
        User.id = id;
    }

    public static String getUser() {
        return user;
    }

    public static void setUser(String user) {
        User.user = user;
    }
}

این هم متد getAllUsers کلاس دیتابیس

public List getAllUsers() {
        List usersList = new ArrayList<>();

        // Select all Query
        String selectQuery = "SELECT * FROM " + DATABASE_TABLE;

        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);

        // Looping through all rows and adding to list
        if (cursor.moveToFirst()) {
            do {
                User u = new User();
                u.setId(Integer.parseInt(cursor.getString(0)));
                u.setUser(cursor.getString(1));

                // Adding Reminders to list
                usersList.add(u);
            } while (cursor.moveToNext());
        }
        return usersList;
    }

حالا مشکل کجاست؟ بنظر شما؟ لطفا راهنمائی کنید!

0 0
ایراد از کلاس User هست، نمیدونم چرا اون متدها و فیلد ها رو static کردید. (10 سال پیش)
 برای این سوال پاسخی وجود ندارد.

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