afraz11

دیتابیس انلاین-لایک
مشکل در لایک در دیتابیس آنلاین

14 ارسال در این موضوع قرار دارد

با سلام و درود خدمت همکاران عزیز

دوستان بنده در حال ساخت یه برنامه ای بودم که در قسمت لایک مشکل دارم

من اومدم  شماره سریال گوشی ها رو گرفتم و یه مقدار تضادفی هم بهش دادمو به سرور میفرستم و ذخیره میشه (چون شماره سریال هر گوشی متفاوته و اینجوری هرکسی میتونه برنامه رو با یوزر خودش لایک کنه)

مشکل من وقتی به وجود میاد وقتی من دکمه هر پستی تو ریسایکلر ویو رو لایک میکنم تا رو دکمه دریافت دوباره از سرور نزنم  اون دکمه لایک نمیخوره

میخواستم بدونم چجوری میشه اول دکمه به طور نمایشی لایک بخوره بعد در فرصتی پشت پرده به سرور انتقال داده بشه

 

ممنون میشم کمک کنید یا اگه روشی بلدید یه توضیح مختصر بدید ممنون میشم

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

اون استادی که فقط بلده دکمه فشار بده

لطفا به جایه فشار دادن دکمه بیا منبع رو ذکر کن ببین چنین چیزی جورد داره یا از خودت داری میگی

من آشنا به قوانین سایتم ولی کل سایتو گشتم ولی چنین موضوعی رو ندید اگه شما بزرگوار میگی هست لطفا آدرس بده ما هم ببینیم

با تشکر 

 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

از پاسخگویی شما بزرگواران خیلی خرسند شدیم 

خودم پیدا کردم:D

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

ارسال شده در (ویرایش شده)

مقدار لایکو حتما داری دیگه که نشونش دادی . مطمئنا داخل INT ذخیره شده . برای نمایشی شدنش کافیه ++ کنیش .

 

ویرایش شده در توسط Seyed-Hossein-Akbari
1 کاربر پسند دیده است

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

مشکل تو فایل phpیا در سورس اندروید استودیو                    نبود
مشکل بنده تو ریفریش ریساکلر بود (باید به گونه ای ریفریش میشد خیلی سریع و بدون اینکه کاربر بفهمه)خدا رو شکر بعد 3ساعت تلاش پیدا کردم

 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

ارسال شده در (ویرایش شده)

NOTIFYDATASETCHANGE برای به روز رسانی آداپتر استفاده میشه .

و اینکه من نمیدونم چطور کد نوشتید . اما اصلا نیازی نیست به روز بشه :)

ویرایش شده در توسط Seyed-Hossein-Akbari

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

دوست عزیز این کد پیش پا افتادست یعنی برای پروژه ای که من دارم به د ر د منخورد

 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

دوست عزیز . اصلا برای لایک کردن نیاز به ، به روز رسانی نیست اونم برای نمایش . داخل آداپتر وقتی میگید کلیک کرد فلان کارو انجام بده ، خود به خود به روز میشه .

در ضمن کدهای پیش پا افتاده ؟؟؟؟؟

همین کد پیش پا افتاده کلی کد پشت سرشه . اون بنده خدایی که ریسایکلر رو برای شما درست کرده فکر اینجاشو کرده .

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

خوب بزرگوار اگه نیاز به روز کردن نباشه پس از کجا باید اطلاعاتو بگیر که کاربر اطلاعاتو لایک کرده یا خیر ؟

خوب ببین منم دکمه لایکو به وسیله اطلاعات آداپتر لایک و آنلاک میکنم تا اینجا درست ولی قبلش باید  تو قسمت onBindViewHolder ریسایکلر باید چک بکنم که آیا این دکمه از قبل تو دیتابیس لایک شده یا خیر

درضم بنده گفتم که این کد notifyDataSetChanged که برای ریفرش اطلاعات هست در این قسمت به دردم نمیخوره و میدونم همین که خودش خیلی کار برده :dodgy:

 

در ضم شما که میگید نیاز به آپدیت نداره یه نگاه بنداز به کد ببنید نیازی هست به نظرتون آپدیت بشه یا نه

حالا بفرمایید چجوری من لایک کنم که نیاز به بروز شدن نداشته باشه               :5917111a9dd66_emoticon(4):


public class CustomAdp_RecyMain extends RecyclerView.Adapter<CustomAdp_RecyMain.ViewHolder> {
    List<Data_recycler> listData = new ArrayList<>();


    Activity context;
    LikeButton likeButton;
    ImageView copyText,shareTextAndpic;
    G g=new G();
    Boolean favcheek=false;
    int ii;

    public CustomAdp_RecyMain(List<Data_recycler> listData, Activity context) {
        this.listData = listData;
        this.context = context;
    }


    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.sample_item_recycler, parent, false);
        ViewHolderAfraz viewHolder = new ViewHolderAfraz(v);
        return viewHolder;


    }

    @Override
    public void onBindViewHolder(@NonNull final ViewHolderAfraz holder, final int position) {

       // G.useridcheek =G.list.get(holder.getAdapterPosition()).getUserid();


    holder.onvan.setText(listData.get(position).getOnvan());
    holder.matn.setText(listData.get(position).getMatn());

    String s = listData.get(position).getImgAdress();

    Picasso.with(context).load(s).error(R.drawable.ic_launcher_background).into(holder.imgadress);
    holder.matn.setText(listData.get(position).getMatn());
    holder.onvan.setText(listData.get(position).getOnvan());
    holder.matn.setText(listData.get(position).getMatn());




    String usercek = G.list.get(position).getUserid();
    Log.e("usercek", G.list.get(ii).getUserid());
    favcheek = usercek.contains("|" + G.UserId);
    Log.e("ceek11111", String.valueOf(favcheek));
    //Log.e("position", String.valueOf(position));

    likeButton.setLiked(true);

    if (favcheek == false) {
        likeButton.setLikeDrawable(context.getResources().getDrawable(R.drawable.ic_favoff_24dp));
        //likeButton.setLiked(false);
    } else if (favcheek == true) {
        likeButton.setLikeDrawable(context.getResources().getDrawable(R.drawable.ic_favon_24dp));

    }



    }


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




    public class ViewHolder extends RecyclerView.ViewHolder {
        TextView onvan, matn, tbleghat;
        ImageView imgadress;

        public ViewHolder(final View itemView) {
            super(itemView);
            onvan = (TextView) itemView.findViewById(R.id.text_onvan_recycler);
            matn = (TextView) itemView.findViewById(R.id.text_matn_recycler);
            imgadress = (ImageView) itemView.findViewById(R.id.img_onvan_recycler);
            likeButton =(LikeButton)itemView.findViewById(R.id.Like_fav_recycler);
            copyText=(ImageView)itemView.findViewById(R.id.img_copy_recycler);
            shareTextAndpic=(ImageView)itemView.findViewById(R.id.img_share_recycler);



            likeButton.setOnLikeListener(new OnLikeListener() {
                @Override
                public void liked(LikeButton likeButton1) {
                    likeButton1.setLikeDrawable(context.getResources().getDrawable(R.drawable.ic_favon_24dp));
                    final Updeta_fav_online updeta_fav_online;
                    updeta_fav_online=new Updeta_fav_online("http://192.168.....1...0/........j.php",context,getAdapterPosition());
                    updeta_fav_online.Updeta_favha();


                }

                @Override
                public void unLiked(LikeButton likeButton1) {
                    likeButton1.setLikeDrawable(context.getResources().getDrawable(R.drawable.ic_favoff_24dp));
                    final Updeta_fav_online updeta_fav_online;
                    updeta_fav_online=new Updeta_fav_online("http://192.168.1...0/...........php",context,getAdapterPosition());
                    updeta_fav_online.Updeta_favha();
                }
            });



            copyText.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    AriaLib ariaLib=new AriaLib(context);
                    ariaLib.Sharing().setClipboadText(G.list.get(getAdapterPosition()).getMatn());
                    Toast.makeText(context, "درکیبورد کپی شد", Toast.LENGTH_SHORT).show();

                }
            });

           












    }












 


 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

ارسال شده در (ویرایش شده)

الان همین کد کار به روز رسانی رو انجام میده دیگه .

                    likeButton1.setLikeDrawable(context.getResources().getDrawable(R.drawable.ic_favoff_24dp));

شما داخل کلیک هر چی بنویسی انجام میشه . تصویر عوض میشه . یه مقداری عوض میشه و ...

دیگه نیازی به ، به روز رسانی آداپتر نیست .

حالا شما بفرمایید چطوری به روز کردید ؟

اصلا چرا کلیک رو داخل ویوهولدر نوشتی ؟ باید داخل همون  onbind بنویسی .

ویرایش شده در توسط Seyed-Hossein-Akbari

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

دوست عزیز من مشکلم با کلیک کردن ندارم که ده:dodgy:

من مشکلم اینه که وقتی کاربر دکمه لایک رو زد ولایک شد اگه آداپتر ریفرش شد باز لایک باقی بمونه یا برعکس 

خوب در رابطه با دکمه لایک هم باید بگم مگه زیاد فرقی هم داره اینجوری تست کردم جواب بهتر میاد

 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

اع :| . خب مگه اطلاعاتو از وب نمیگیری ؟ وقتی اطلاعاتو داری از وب میگیری هر بار که اداپتر رفرش بشه اطلاعات رو میگیره دوباره :| .

بعدشم viewholder از اسمش معلومه . ویو رو نگه میداره ... و هر بار که داره لیست رو میسازه از روی هولدر میسازه . اینطوری که کد نوشتید سرعت برنامه و لیست میاد پایین ....

کدهای کلیک و هر چیزی باید داخل onbind نوشته بشه .

 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

عزیز دل برادر خوب من هدف اینه که  وقتی رو دکمه لایک زده شد همون لحظه بیاد دتابیس رو چک کنه و لایک رو بر مبنا دیتابیس قرار بده و نمیخوام هر بار ریفرش شده اطلاعات اپدیت بشه 

در ضم بنده به دلیل برخی مثال نمیتونم تو قسمت onbind  قرارش بدم  

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

ارسال شده در (ویرایش شده)

من ، نمیدونم . روش کد نویسیت خیلی بده . دیگه خودت میدونی ...

این روش اصلا استاندارد نیست .

حتی اینستگرام هم اینکاری که شما میکنی رو نمیکنه .

وقتی ترافیک سایتت با هزاران لایکی که در ثانیه داره صورت میگیره بره بالا . میفهمی چرا استاندارد نیست .

موفق باشی

ویرایش شده در توسط Seyed-Hossein-Akbari

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری