رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

تکرار شدن آیتم های ریسایکلرویو با اسکرول کردن یا جابه جایی بین تب ها


پست های پیشنهاد شده

با سلام

من توی برنامم چندتا تب دارم که وقتی بین اونها جابه جا میشم آیتم های ریسایکلرویو

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

من یکی از فرگمنت ها رو میزارم ممنون میشم راهنمایی بفرمایید.

کلاس Fragment

package com.narsis.countriesandcontinents;

import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Color;
import android.graphics.Typeface;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.app.AlertDialog;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.afollestad.materialdialogs.DialogAction;
import com.afollestad.materialdialogs.MaterialDialog;
import com.github.javiersantos.materialstyleddialogs.MaterialStyledDialog;
import com.narsis.countriesandcontinents.mainPage.AdapterCardView;
import com.narsis.countriesandcontinents.mainPage.MainActivity;
import com.narsis.countriesandcontinents.mainPage.ViewHolder;

import java.io.IOException;
import java.lang.reflect.Type;
import java.sql.SQLException;
import java.util.ArrayList;
import static com.narsis.countriesandcontinents.mainPage.MainActivity.context;

/**
 * A simple {@link Fragment} subclass.
 */
public class Asia_Fragment extends Fragment {
    RecyclerView recyclerView;
    public static final String ARG_PAGE = "ARG_PAGE";
    private int mPage;
    Cursor cursor;
  public ArrayList<Structure> arrayList = new ArrayList<Structure>();
    public AdapterCardView adapterCardView ;
    EditText txt_search;
    String newText;
    String s;

    public  Asia_Fragment() {

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {

        ViewGroup viewGroup=(ViewGroup)inflater.inflate(R.layout.fragment_asia_,container,false);//set:recyclerView
        recyclerView= (RecyclerView) viewGroup.findViewById(R.id.my_recyclerview);
        TextView country_data = (TextView) viewGroup.findViewById(R.id.country_data);
        Typeface tp = Typeface.createFromAsset(getActivity().getAssets(), "fonts/Mj_Text Bold.ttf");
       
            adapterCardView = new AdapterCardView(getActivity(),arrayList);
            loadDatabase();
   
        return viewGroup;
    }

    public void loadDatabase()
    {
        final Database database = new Database(getContext());
        database.CreateDatabase();
        database.openDatabase();
        Cursor cursor=database.QueryData("SELECT * FROM Country WHERE Ghareh='آسیا'");

      if (cursor != null)
        {
            if (cursor.moveToFirst())
            {
                do
                {
                    Structure structure = new Structure();
                    structure.setCountry_Name(cursor.getString(1));
                    structure.setCapital(cursor.getString(2));
                    structure.setGhareh(cursor.getString(3));
                    structure.setFlag(cursor.getString(4));
                    structure.setMeanCountry(cursor.getString(5));
                    arrayList.add(structure);
                }
                while (cursor.moveToNext());



                recyclerView.addOnItemTouchListener(
                        new RecyclerItemClickListener(getActivity(), recyclerView, new RecyclerItemClickListener.OnItemClickListener() {
                            @Override
                            public void onItemClick(View view, int position)
                            {
                                Alert alert = new Alert(getActivity());

                                for(int i=0;i<=position;i++)
                                {
                                    alert.country_data.setText(arrayList.get(position).getCountry_Name());

                                    alert.capital_data.setText(arrayList.get(position).getCapital());
                                    alert.ghareh_data.setText(arrayList.get(position).getGhareh());
                                    alert.meancountrydata.setText(arrayList.get(position).getMeanCountry());
                                    int id=getContext().getResources().getIdentifier(arrayList.get(position).getFlag(),"mipmap",getContext().getPackageName());
                                    alert.imgDialog.setImageResource(id);
                                    alert.show();
                                }

                            }

                            @Override
                            public void onLongItemClick(View view, int position) {
                            
                            }
                        }));
            }
        }

        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
        // adapterCardView=new AdapterCardView(getActivity(),arrayList);

        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(linearLayoutManager);
        recyclerView.setAdapter(adapterCardView);

        database.close();
   }

}

 

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

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

ولی تاثیری نداشت:

 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {

        ViewGroup viewGroup=(ViewGroup)inflater.inflate(R.layout.fragment_asia_,container,false);
        recyclerView= (RecyclerView) viewGroup.findViewById(R.id.my_recyclerview);
        TextView country_data = (TextView) viewGroup.findViewById(R.id.country_data);

        Typeface tp = Typeface.createFromAsset(getActivity().getAssets(), "fonts/Mj_Text Bold.ttf");
        if(flag==0)
        {
            adapterCardView = new AdapterCardView(getActivity(), arrayList);
            flag = 1;

        }
            loadDatabase();
        arrayList.add(null);
        return viewGroup;
    }

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر
در 12 ساعت قبل، scientific گفته است :

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

ولی تاثیری نداشت:


 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {

        ViewGroup viewGroup=(ViewGroup)inflater.inflate(R.layout.fragment_asia_,container,false);
        recyclerView= (RecyclerView) viewGroup.findViewById(R.id.my_recyclerview);
        TextView country_data = (TextView) viewGroup.findViewById(R.id.country_data);

        Typeface tp = Typeface.createFromAsset(getActivity().getAssets(), "fonts/Mj_Text Bold.ttf");
        if(flag==0)
        {
            adapterCardView = new AdapterCardView(getActivity(), arrayList);
            flag = 1;

        }
            loadDatabase();
        arrayList.add(null);
        return viewGroup;
    }

 

سلام دوست عزیز احتیاجی به متغییر نیست.دلیل این اتفاق این هستش که زمانی که شما بین تب ها جا به جا میشین فرگمنت ها به صورت کامل از بین نمیرن.

برای این که شما جلو این تکرار رو بگیرین باید تو متد onCreateView یه شرط بزارین قبل از ساخت adapter  تا چک کنید ببینید ازین فرگمنت دیتایی ساخته شده یا نه به این صورت تغییر بدین کدتونو

  if (savedInstanceState == null){     
adapterCardView = new AdapterCardView(getActivity(),arrayList);
            loadDatabase();
   }

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر
در 2 ساعت قبل، a.khosroabadi گفته است :

سلام دوست عزیز احتیاجی به متغییر نیست.دلیل این اتفاق این هستش که زمانی که شما بین تب ها جا به جا میشین فرگمنت ها به صورت کامل از بین نمیرن.

برای این که شما جلو این تکرار رو بگیرین باید تو متد onCreateView یه شرط بزارین قبل از ساخت adapter  تا چک کنید ببینید ازین فرگمنت دیتایی ساخته شده یا نه به این صورت تغییر بدین کدتونو


  if (savedInstanceState == null){     
adapterCardView = new AdapterCardView(getActivity(),arrayList);
            loadDatabase();
   }

 

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

 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
        ViewGroup viewGroup=(ViewGroup)inflater.inflate(R.layout.fragment_asia_,container,false);
        recyclerView= (RecyclerView) viewGroup.findViewById(R.id.my_recyclerview);
        TextView country_data = (TextView) viewGroup.findViewById(R.id.country_data);
      
        if (savedInstanceState == null){
            adapterCardView = new AdapterCardView(getActivity(),arrayList);
            loadDatabase();
        }
        return viewGroup;
    }

 

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

من یک بریک پویت گذاشتم ابتدای متد onCerete :

دفعه اول مقدار savedInstanceState صفر هست و تعداد آیتمها هم درسته

ولی وقتی وارد تب دیگه میشم و بعد برمی گردم به همون تب،  مقدار savedInstanceState بازم صفره!!!!!! و تعداد آیتم ها دوبرابر.

دفعه سوم هم تعداد آتم ها سه برابر میشه  و به همین ترتیب...

(درواقع با هربار جابه جایی بین تب ها آیتم ها به آیتم های قبلی اضافه میشن.)

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

savedInstanceState.png

لینک ارسال
به اشتراک گذاری در سایت های دیگر
در در 1395/12/19, 10:52:56، a.khosroabadi گفته است :

سلام دوست عزیز احتیاجی به متغییر نیست.دلیل این اتفاق این هستش که زمانی که شما بین تب ها جا به جا میشین فرگمنت ها به صورت کامل از بین نمیرن.

برای این که شما جلو این تکرار رو بگیرین باید تو متد onCreateView یه شرط بزارین قبل از ساخت adapter  تا چک کنید ببینید ازین فرگمنت دیتایی ساخته شده یا نه به این صورت تغییر بدین کدتونو


  if (savedInstanceState == null){     
adapterCardView = new AdapterCardView(getActivity(),arrayList);
            loadDatabase();
   }

 

ببخشید راه حل دیگه ای هم داره؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر
در 14 ساعت قبل، scientific گفته است :

ببخشید راه حل دیگه ای هم داره؟

سلام دوست عزیز ببخشید با تاخیر جواب میدم اگه ممکنه کد اکتیویتی که این fragment ها (تب ها) رو توش لود میکنید و همینطور کد AdapterCardView بزارین.

لینک ارسال
به اشتراک گذاری در سایت های دیگر
در در 1395/12/21, 09:18:35، a.khosroabadi گفته است :

سلام دوست عزیز ببخشید با تاخیر جواب میدم اگه ممکنه کد اکتیویتی که این fragment ها (تب ها) رو توش لود میکنید و همینطور کد AdapterCardView بزارین.

سلام خواهش می کنم خیلی هم ممنونم بابت پاسخ گویی...

این کلاس AdapterCardView:

package com.narsis.countriesandcontinents.mainPage;
import android.content.Context;
import android.content.res.AssetManager;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Typeface;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.text.Layout;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.narsis.countriesandcontinents.Africa_Fragment;
import com.narsis.countriesandcontinents.Database;
import com.narsis.countriesandcontinents.R;
import com.narsis.countriesandcontinents.Structure;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.zip.Inflater;
import static android.support.v7.widget.RecyclerView.*;
import static java.security.AccessController.getContext;

public class AdapterCardView extends RecyclerView.Adapter<ViewHolder> {
    Context context;
    LayoutInflater inflater;

    List<Structure> items = Collections.emptyList();
   public int flagLoadItems=0;
    String pathfont="fonts/Mj_Text Bold.ttf";
    Typeface tf=Typeface.createFromAsset(MainActivity.context.getAssets(),pathfont);

    public AdapterCardView(Context context, List<Structure> items) {
        this.context=context;
        this.items = items;
        inflater=LayoutInflater.from(context);
        setHasStableIds(false);
    }
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view=LayoutInflater.from(parent.getContext()).inflate(R.layout.adapter_cardview,parent,false);
        TextView textView= (TextView) view.findViewById(R.id.txt_title);

        ViewHolder viewHolder= new ViewHolder(view,textView);
        return viewHolder;
    }
    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        Database database=new Database(context);
         holder.txt_countryname.setText(items.get(position).getCountry_Name());
         holder.txt_countryname.setTypeface(tf);

        int resID = context.getResources().getIdentifier(items.get(position).getFlag(),"mipmap", context.getPackageName());      
        if((items.get(position).getFlag()).equals("0"))
        {
            try {
                holder.img_flags.setImageBitmap(database.getBitmapFromAssets("iran.png"));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        else {
            holder.img_flags.setImageResource(resID);
        }
    }
    @Override
    public int getItemCount() {      
        flagLoadItems=1;
       return items.size();
    }

    @Override
    public long getItemId(int position)
    {
        return super.getItemId(position);
    }

    @Override
    public int getItemViewType(int position)
    {
        return super.getItemViewType(position);
    }
}

Fragment Asia:

package com.narsis.countriesandcontinents;

import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Color;
import android.graphics.Typeface;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.app.AlertDialog;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.afollestad.materialdialogs.DialogAction;
import com.afollestad.materialdialogs.MaterialDialog;
import com.github.javiersantos.materialstyleddialogs.MaterialStyledDialog;
import com.narsis.countriesandcontinents.mainPage.AdapterCardView;
import com.narsis.countriesandcontinents.mainPage.MainActivity;
import com.narsis.countriesandcontinents.mainPage.ViewHolder;
import java.io.IOException;
import java.lang.reflect.Type;
import java.sql.SQLException;
import java.util.ArrayList;
import static com.narsis.countriesandcontinents.mainPage.MainActivity.context;

/**
 * A simple {@link Fragment} subclass.
 */
public class Asia_Fragment extends Fragment {
    RecyclerView recyclerView;
    public static final String ARG_PAGE = "ARG_PAGE";
    private int mPage;
    Cursor cursor;
  public ArrayList<Structure> arrayList = new ArrayList<Structure>();
    public AdapterCardView adapterCardView ;
    EditText txt_search;
    String newText;
    String s;

    public  Asia_Fragment() {

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {

        ViewGroup viewGroup=(ViewGroup)inflater.inflate(R.layout.fragment_asia_,container,false);//set:recyclerView
        recyclerView= (RecyclerView) viewGroup.findViewById(R.id.my_recyclerview);
        TextView country_data = (TextView) viewGroup.findViewById(R.id.country_data);
        Typeface tp = Typeface.createFromAsset(getActivity().getAssets(), "fonts/Mj_Text Bold.ttf");
       
            adapterCardView = new AdapterCardView(getActivity(),arrayList);
            loadDatabase();
   
        return viewGroup;
    }

    public void loadDatabase()
    {
        final Database database = new Database(getContext());
        database.CreateDatabase();
        database.openDatabase();
        Cursor cursor=database.QueryData("SELECT * FROM Country WHERE Ghareh='آسیا'");

      if (cursor != null)
        {
            if (cursor.moveToFirst())
            {
                do
                {
                    Structure structure = new Structure();
                    structure.setCountry_Name(cursor.getString(1));
                    structure.setCapital(cursor.getString(2));
                    structure.setGhareh(cursor.getString(3));
                    structure.setFlag(cursor.getString(4));
                    structure.setMeanCountry(cursor.getString(5));
                    arrayList.add(structure);
                }
                while (cursor.moveToNext());



                recyclerView.addOnItemTouchListener(
                        new RecyclerItemClickListener(getActivity(), recyclerView, new RecyclerItemClickListener.OnItemClickListener() {
                            @Override
                            public void onItemClick(View view, int position)
                            {
                                Alert alert = new Alert(getActivity());

                                for(int i=0;i<=position;i++)
                                {
                                    alert.country_data.setText(arrayList.get(position).getCountry_Name());

                                    alert.capital_data.setText(arrayList.get(position).getCapital());
                                    alert.ghareh_data.setText(arrayList.get(position).getGhareh());
                                    alert.meancountrydata.setText(arrayList.get(position).getMeanCountry());
                                    int id=getContext().getResources().getIdentifier(arrayList.get(position).getFlag(),"mipmap",getContext().getPackageName());
                                    alert.imgDialog.setImageResource(id);
                                    alert.show();
                                }

                            }

                            @Override
                            public void onLongItemClick(View view, int position) {
                            
                            }
                        }));
            }
        }

        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
        
        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(linearLayoutManager);
        recyclerView.setAdapter(adapterCardView);

        database.close();
   }

}

Fragment Europe:

package com.narsis.countriesandcontinents;

import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.narsis.countriesandcontinents.mainPage.AdapterCardView;
import java.util.ArrayList;
/**
 * A simple {@link Fragment} subclass.
 */
public class Europe_Fragment extends Fragment {
    RecyclerView recyclerView;
    ArrayList<Structure>arrayList=new ArrayList<>();


    public Europe_Fragment() {
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
      View view=inflater.inflate(R.layout.fragment_asia_, container, false);
        recyclerView = (RecyclerView) view.findViewById(R.id.my_recyclerview);
        AdapterCardView adapterCardView=new AdapterCardView(getContext(),arrayList);
        recyclerView.setAdapter(adapterCardView);
        recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
        recyclerView.setHasFixedSize(true);
        loadDatabase();
        return view;
    }
    public void loadDatabase(){
        Database database=new Database(getContext());
        database.CreateDatabase();
        database.openDatabase();
        Cursor cursor= database.QueryData("SELECT * FROM Country WHERE Ghareh='اروپا'");
        if(cursor!=null){
            if(cursor.moveToFirst()){
                do {
                    Structure structure = new Structure();
                    structure.setCountry_Name(cursor.getString(1));
                    structure.setFlag(cursor.getString(4));
                    structure.setCapital(cursor.getString(2));
                    structure.setMeanCountry(cursor.getString(5));
                    structure.setGhareh(cursor.getString(3));
                    arrayList.add(structure);
                }
                while (cursor.moveToNext()) ;

                recyclerView.addOnItemTouchListener(new RecyclerItemClickListener(getContext(),recyclerView, new RecyclerItemClickListener.OnItemClickListener() {
                    @Override
                    public void onItemClick(View view, int position) {

                        Alert alert = new Alert(getActivity());
                        for(int i=0;i<=position;i++)
                        {
                            alert.country_data.setText(arrayList.get(position).getCountry_Name());
                            alert.ghareh_data.setText(arrayList.get(position).getGhareh());
                            alert.capital_data.setText(arrayList.get(position).getCapital());
                            alert.meancountrydata.setText(arrayList.get(position).getMeanCountry());
                            int id=getContext().getResources().getIdentifier(arrayList.get(position).getFlag(),"mipmap",getContext().getPackageName());
                            alert.imgDialog.setImageResource(id);
                            alert.show();
                        }
                    }

                    @Override
                    public void onLongItemClick(View view, int position) {

                    }
                }));

            }
        }
    }

}

Fragment America

package com.narsis.countriesandcontinents;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.narsis.countriesandcontinents.mainPage.AdapterCardView;
import com.narsis.countriesandcontinents.mainPage.MainActivity;
import java.util.ArrayList;

/**
 * A simple {@link Fragment} subclass.
 */
public class America_Fragment extends Fragment {
    RecyclerView recyclerView;
    AdapterCardView adapterCardView;

    ArrayList<Structure> arrayList=new ArrayList<Structure>();
    Cursor cursor;

    public America_Fragment() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
       View view= inflater.inflate(R.layout.fragment_asia_, container, false);
        recyclerView= (RecyclerView) view.findViewById(R.id.my_recyclerview);
        AdapterCardView adapterCardView=new AdapterCardView(getActivity(),arrayList);

        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
        recyclerView.setAdapter(adapterCardView);
        recyclerView.setHasFixedSize(true);
        loadDatabase();

        return view;
    }
    public void loadDatabase(){
        Database database=new Database(getActivity());
        database.CreateDatabase();
        database.openDatabase();
        cursor= database.QueryData("SELECT * FROM Country WHERE Ghareh='آمریکا'");
        if (cursor!=null){
            if (cursor.moveToFirst()){
                do {
                    Structure structure=new Structure();
                    structure.setCountry_Name(cursor.getString(1));//sotun 1
                    structure.setFlag(cursor.getString(cursor.getColumnIndex("Flag")));
                    structure.setCapital(cursor.getString(2));
                    structure.setGhareh(cursor.getString(3));
                    structure.setMeanCountry(cursor.getString(5));
                    arrayList.add(structure);
                }
                while (cursor.moveToNext());

                recyclerView.addOnItemTouchListener(new RecyclerItemClickListener(getContext(),recyclerView, new RecyclerItemClickListener.OnItemClickListener() {
                    @Override
                    public void onItemClick(View view, int position) {

                        Alert alert = new Alert(getActivity());
                        for(int i=0;i<=position;i++)
                        {
                            alert.ghareh_data.setText(arrayList.get(position).getGhareh());
                            alert.capital_data.setText(arrayList.get(position).getCapital());
                            alert.country_data.setText(arrayList.get(position).getCountry_Name());
                            alert.meancountrydata.setText(arrayList.get(position).getMeanCountry());
                            int id=getContext().getResources().getIdentifier(arrayList.get(position).getFlag(),"mipmap",getContext().getPackageName());
                            alert.imgDialog.setImageResource(id);
                            alert.show();
                        }
                    }

                    @Override
                    public void onLongItemClick(View view, int position) {

                    }
                }));
            }
        }
    }

}

Fragment Africa:

package com.narsis.countriesandcontinents;

import android.content.Context;
import android.content.res.AssetManager;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.narsis.countriesandcontinents.mainPage.AdapterCardView;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;


/**
 * A simple {@link Fragment} subclass.
 */
public class Africa_Fragment extends Fragment {
    RecyclerView recyclerView;
    ArrayList<Structure> arrayList=new ArrayList<>();
    Context context;
    public Africa_Fragment() {
        // Required empty public constructor
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
       View view =inflater.inflate(R.layout.fragment_asia_, container, false);
        recyclerView= (RecyclerView) view.findViewById(R.id.my_recyclerview);
        AdapterCardView adapterCardView=new AdapterCardView(getContext(),arrayList);
        recyclerView.setAdapter(adapterCardView);
        recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
        recyclerView.setHasFixedSize(true);
        loadDatabase();
        return view;
    }

    public void loadDatabase(){
        Database database=new Database(getContext());
        database.CreateDatabase();
        database.openDatabase();
       
        Cursor cursor=database.QueryData("SELECT * FROM Country WHERE Ghareh='آفریقا'");
        if (cursor!=null && cursor.moveToFirst())
        {
            do {
                    Structure structure = new Structure();
                    structure.setCountry_Name(cursor.getString(1));
                    structure.setGhareh(cursor.getString(3));
                    structure.setCapital(cursor.getString(2));
                    structure.setMeanCountry(cursor.getString(5));
                 
                    structure.setFlag(cursor.getString(4));
                    arrayList.add(structure);
                }
                while (cursor.moveToNext());
            recyclerView.addOnItemTouchListener(new RecyclerItemClickListener(getContext(),recyclerView, new RecyclerItemClickListener.OnItemClickListener() {
                @Override
                public void onItemClick(View view, int position) {

                    Alert alert = new Alert(getActivity());
                    for(int i=0;i<=position;i++)
                    {
                        alert.country_data.setText(arrayList.get(position).getCountry_Name());
                        alert.ghareh_data.setText(arrayList.get(position).getGhareh());
                        alert.capital_data.setText(arrayList.get(position).getCapital());
                        alert.meancountrydata.setText(arrayList.get(position).getMeanCountry());
                        int id=getContext().getResources().getIdentifier(arrayList.get(position).getFlag(),"mipmap",getContext().getPackageName());
                        alert.imgDialog.setImageResource(id);
                        alert.show();
                    }

                }

                @Override
                public void onLongItemClick(View view, int position) {

                }
            }));
        }
    }
}

Fragment Austrolia:

package com.narsis.countriesandcontinents;

import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.narsis.countriesandcontinents.mainPage.AdapterCardView;
import java.util.ArrayList;


/**
 * A simple {@link Fragment} subclass.
 */
public class Australia_Fragment extends Fragment {
    RecyclerView recyclerView;
    ArrayList<Structure>arrayList =new ArrayList<>();
   // int flag=0;
    AdapterCardView adapcard;
    public Australia_Fragment() {
        // Required empty public constructor
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {      
        View view= inflater.inflate(R.layout.fragment_asia_, container, false);
        recyclerView= (RecyclerView) view.findViewById(R.id.my_recyclerview);

            AdapterCardView adapterCardView = new AdapterCardView(getContext(), arrayList);
            recyclerView.setAdapter(adapterCardView);
            recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
            recyclerView.setHasFixedSize(true);
            loadDatabase();
            return view;

    }
    public void loadDatabase(){
        final Database database=new Database(getContext());
        database.CreateDatabase();
        database.openDatabase();
        Cursor cursor=database.QueryData("SELECT * FROM Country WHERE Ghareh='استرالیا'");
        if (cursor!=null && cursor.moveToFirst()){
                do
                {
                    Structure structure = new Structure();
                    structure.setCountry_Name(cursor.getString(1));
                    structure.setFlag(cursor.getString(4));
                    structure.setCapital(cursor.getString(2));
                    structure.setGhareh(cursor.getString(3));
                    structure.setMeanCountry(cursor.getString(5));
                    arrayList.add(structure);
                }

                while (cursor.moveToNext());

            recyclerView.addOnItemTouchListener(new RecyclerItemClickListener(getContext(),recyclerView, new RecyclerItemClickListener.OnItemClickListener() {
                @Override
                public void onItemClick(View view, int position) {

                    Alert alert = new Alert(getActivity());
                    for (int i=0;i<=position;i++)
                    {
                        alert.country_data.setText(arrayList.get(position).getCountry_Name());
                        alert.capital_data.setText(arrayList.get(position).getCapital());
                        alert.ghareh_data.setText(arrayList.get(position).getGhareh());
                        alert.meancountrydata.setText(arrayList.get(position).getMeanCountry());
                        int id=getContext().getResources().getIdentifier(arrayList.get(position).getFlag(),"mipmap",getContext().getPackageName());
                        alert.imgDialog.setImageResource(id);

                        alert.show();

                    }
                    database.close();
        }

                @Override
                public void onLongItemClick(View view, int position) {

                }
            }));

        }
    }

}

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر
در در 1395/12/21, 09:18:35، a.khosroabadi گفته است :

سلام دوست عزیز ببخشید با تاخیر جواب میدم اگه ممکنه کد اکتیویتی که این fragment ها (تب ها) رو توش لود میکنید و همینطور کد AdapterCardView بزارین.

من اشتباهی کدهای فرگمنت ها رو گذاشتم

این اکتیویتیMain که فرگمنت ها رو نمایش میده:

package com.narsis.countriesandcontinents.mainPage;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Typeface;
import android.media.audiofx.BassBoost;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.NavigationView;
import android.support.design.widget.TabLayout;
import android.support.v4.view.GravityCompat;
import android.support.v4.view.MenuItemCompat;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.SearchView;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TableLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.astuetz.PagerSlidingTabStrip;
import com.narsis.countriesandcontinents.Adapters.ViewPagerAdapter;
import com.narsis.countriesandcontinents.Africa_Fragment;
import com.narsis.countriesandcontinents.America_Fragment;
import com.narsis.countriesandcontinents.Asia_Fragment;
import com.narsis.countriesandcontinents.Australia_Fragment;
import com.narsis.countriesandcontinents.DarbareActivity;
import com.narsis.countriesandcontinents.DarbareyeApp_Activity;
import com.narsis.countriesandcontinents.Database;
import com.narsis.countriesandcontinents.Europe_Fragment;
import com.narsis.countriesandcontinents.R;
import com.narsis.countriesandcontinents.Settings.Settings;
import com.narsis.countriesandcontinents.Structure;
import com.narsis.countriesandcontinents.search.Search;
import static android.support.design.R.styleable.TabLayout;
import static com.astuetz.pagerslidingtabstrip.R.styleable.PagerSlidingTabStrip;
import static com.narsis.countriesandcontinents.R.id.close;
import static com.narsis.countriesandcontinents.R.id.countryname;
import static com.narsis.countriesandcontinents.R.id.design_navigation_view;
import static com.narsis.countriesandcontinents.R.id.flag;
import static com.narsis.countriesandcontinents.R.id.navigation;
import static com.narsis.countriesandcontinents.R.id.start;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import it.neokree.materialtabs.MaterialTabHost;
import java.util.ArrayList;
import it.neokree.materialtabs.MaterialTabHost;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;
import android.provider.Settings.System;
import android.support.design.widget.CollapsingToolbarLayout;

public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener{
    Database mydatabase;
    SQLiteDatabase database;
    public static Context context;
    Toolbar toolbar;
    TabLayout mtabLayout; 
    ViewPager viewPager;
    CardView cardView;

    ViewPagerAdapter viewPagerAdapter;
    AdapterCardView adaptercard;
  public DrawerLayout mDrawerlayout;
    public NavigationView navigationView;
    private String[] mPlanetTitles;
    ActionBar mActionBar;
    ActionBarDrawerToggle actionBarDrawerToggle;
    public CollapsingToolbarLayout collapsingToolbarLayout=null;
    Settings settings=new Settings();

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

        context=getApplicationContext();    
        Database mydatabase = new Database(this);
        mydatabase.CreateDatabase();
      
        toolbar= (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setTitle("");
        mtabLayout= (TabLayout) findViewById(R.id.tablayout);
      
        viewPager= (ViewPager) findViewById(R.id.viewpager);
        viewPagerAdapter=new ViewPagerAdapter(getSupportFragmentManager());

        viewPagerAdapter.addFragemnts(new Australia_Fragment(),"استرالیا");
        viewPagerAdapter.addFragemnts(new Africa_Fragment(),"آفریقا");
        viewPagerAdapter.addFragemnts(new Asia_Fragment(),"آسیا");
        viewPagerAdapter.addFragemnts(new America_Fragment(),"آمریکا");
        viewPagerAdapter.addFragemnts(new Europe_Fragment(),"اروپا");

         viewPager.setAdapter(viewPagerAdapter);
        mtabLayout.setupWithViewPager(viewPager);

        navigationView= (NavigationView) findViewById(R.id.navigation);
        navigationView.setNavigationItemSelectedListener(this);

        mDrawerlayout= (DrawerLayout) findViewById(R.id.drawer);

        TextView txt_title= (TextView) findViewById(R.id.txt_title);
        String fontpath="fonts/B Titr Bold_0.ttf";
        String fontpath2="fonts/IranNastaliq.ttf";
        Typeface tp_titr=Typeface.createFromAsset(getAssets(),fontpath2);
        txt_title.setTypeface(tp_titr);
    }

    @Override
    protected void onPostCreate(@Nullable Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu_item, menu);

        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        int id = item.getItemId();
        switch (id)
        {
            case R.id.action_search:
                Intent intent= new Intent(MainActivity.this,Search.class);
                MainActivity.this.startActivity(intent);
                break;
        }
        switch (id)
        {
            case R.id.action_menu:
                
                if(mDrawerlayout.isDrawerOpen(Gravity.RIGHT)) {
                    mDrawerlayout.closeDrawer(Gravity.RIGHT);
                }else{
                    mDrawerlayout.openDrawer(Gravity.RIGHT);
                }
                break;
        }
        return true;
    }

    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item)
    {
        mDrawerlayout.closeDrawers();
        switch (item.getItemId()) {
            case R.id.darbarema:
            {
                Intent intent = new Intent(MainActivity.this, DarbareActivity.class);
                startActivity(intent);
                return true;
            }

            case R.id.khoruj:
                finish();
                return true;
            case R.id.darbareApp:
            {
                startActivity(new Intent(MainActivity.this,DarbareyeApp_Activity.class));
                return true;
            }
            case R.id.Emtiaz:
            {
                try
                {
                    Intent intent = new Intent(Intent.ACTION_EDIT);
                    intent.setData(Uri.parse("bazaar://details?id=" + "com.narsis.countriesandcontinents"));
                    intent.setPackage("com.farsitel.bazaar");
                    startActivity(intent);
                    return true;
                }
                catch (Exception e)
                {
                    Toast.makeText(context,"اتصال اینترنت خود را بررسی کنید و از نصب بودن بازار بر روی دستگاه خود اطمینان حاصل نمایید...",Toast.LENGTH_SHORT);

                }

            }
            default:
                return true;
        }

    }

}

با تشکر

لینک ارسال
به اشتراک گذاری در سایت های دیگر
در ۱ ساعت قبل، scientific گفته است :

من اشتباهی کدهای فرگمنت ها رو گذاشتم

این اکتیویتیMain که فرگمنت ها رو نمایش میده:


package com.narsis.countriesandcontinents.mainPage;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Typeface;
import android.media.audiofx.BassBoost;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.NavigationView;
import android.support.design.widget.TabLayout;
import android.support.v4.view.GravityCompat;
import android.support.v4.view.MenuItemCompat;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.SearchView;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TableLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.astuetz.PagerSlidingTabStrip;
import com.narsis.countriesandcontinents.Adapters.ViewPagerAdapter;
import com.narsis.countriesandcontinents.Africa_Fragment;
import com.narsis.countriesandcontinents.America_Fragment;
import com.narsis.countriesandcontinents.Asia_Fragment;
import com.narsis.countriesandcontinents.Australia_Fragment;
import com.narsis.countriesandcontinents.DarbareActivity;
import com.narsis.countriesandcontinents.DarbareyeApp_Activity;
import com.narsis.countriesandcontinents.Database;
import com.narsis.countriesandcontinents.Europe_Fragment;
import com.narsis.countriesandcontinents.R;
import com.narsis.countriesandcontinents.Settings.Settings;
import com.narsis.countriesandcontinents.Structure;
import com.narsis.countriesandcontinents.search.Search;
import static android.support.design.R.styleable.TabLayout;
import static com.astuetz.pagerslidingtabstrip.R.styleable.PagerSlidingTabStrip;
import static com.narsis.countriesandcontinents.R.id.close;
import static com.narsis.countriesandcontinents.R.id.countryname;
import static com.narsis.countriesandcontinents.R.id.design_navigation_view;
import static com.narsis.countriesandcontinents.R.id.flag;
import static com.narsis.countriesandcontinents.R.id.navigation;
import static com.narsis.countriesandcontinents.R.id.start;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import it.neokree.materialtabs.MaterialTabHost;
import java.util.ArrayList;
import it.neokree.materialtabs.MaterialTabHost;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;
import android.provider.Settings.System;
import android.support.design.widget.CollapsingToolbarLayout;

public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener{
    Database mydatabase;
    SQLiteDatabase database;
    public static Context context;
    Toolbar toolbar;
    TabLayout mtabLayout; 
    ViewPager viewPager;
    CardView cardView;

    ViewPagerAdapter viewPagerAdapter;
    AdapterCardView adaptercard;
  public DrawerLayout mDrawerlayout;
    public NavigationView navigationView;
    private String[] mPlanetTitles;
    ActionBar mActionBar;
    ActionBarDrawerToggle actionBarDrawerToggle;
    public CollapsingToolbarLayout collapsingToolbarLayout=null;
    Settings settings=new Settings();

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

        context=getApplicationContext();    
        Database mydatabase = new Database(this);
        mydatabase.CreateDatabase();
      
        toolbar= (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setTitle("");
        mtabLayout= (TabLayout) findViewById(R.id.tablayout);
      
        viewPager= (ViewPager) findViewById(R.id.viewpager);
        viewPagerAdapter=new ViewPagerAdapter(getSupportFragmentManager());

        viewPagerAdapter.addFragemnts(new Australia_Fragment(),"استرالیا");
        viewPagerAdapter.addFragemnts(new Africa_Fragment(),"آفریقا");
        viewPagerAdapter.addFragemnts(new Asia_Fragment(),"آسیا");
        viewPagerAdapter.addFragemnts(new America_Fragment(),"آمریکا");
        viewPagerAdapter.addFragemnts(new Europe_Fragment(),"اروپا");

         viewPager.setAdapter(viewPagerAdapter);
        mtabLayout.setupWithViewPager(viewPager);

        navigationView= (NavigationView) findViewById(R.id.navigation);
        navigationView.setNavigationItemSelectedListener(this);

        mDrawerlayout= (DrawerLayout) findViewById(R.id.drawer);

        TextView txt_title= (TextView) findViewById(R.id.txt_title);
        String fontpath="fonts/B Titr Bold_0.ttf";
        String fontpath2="fonts/IranNastaliq.ttf";
        Typeface tp_titr=Typeface.createFromAsset(getAssets(),fontpath2);
        txt_title.setTypeface(tp_titr);
    }

    @Override
    protected void onPostCreate(@Nullable Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu_item, menu);

        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        int id = item.getItemId();
        switch (id)
        {
            case R.id.action_search:
                Intent intent= new Intent(MainActivity.this,Search.class);
                MainActivity.this.startActivity(intent);
                break;
        }
        switch (id)
        {
            case R.id.action_menu:
                
                if(mDrawerlayout.isDrawerOpen(Gravity.RIGHT)) {
                    mDrawerlayout.closeDrawer(Gravity.RIGHT);
                }else{
                    mDrawerlayout.openDrawer(Gravity.RIGHT);
                }
                break;
        }
        return true;
    }

    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item)
    {
        mDrawerlayout.closeDrawers();
        switch (item.getItemId()) {
            case R.id.darbarema:
            {
                Intent intent = new Intent(MainActivity.this, DarbareActivity.class);
                startActivity(intent);
                return true;
            }

            case R.id.khoruj:
                finish();
                return true;
            case R.id.darbareApp:
            {
                startActivity(new Intent(MainActivity.this,DarbareyeApp_Activity.class));
                return true;
            }
            case R.id.Emtiaz:
            {
                try
                {
                    Intent intent = new Intent(Intent.ACTION_EDIT);
                    intent.setData(Uri.parse("bazaar://details?id=" + "com.narsis.countriesandcontinents"));
                    intent.setPackage("com.farsitel.bazaar");
                    startActivity(intent);
                    return true;
                }
                catch (Exception e)
                {
                    Toast.makeText(context,"اتصال اینترنت خود را بررسی کنید و از نصب بودن بازار بر روی دستگاه خود اطمینان حاصل نمایید...",Toast.LENGTH_SHORT);

                }

            }
            default:
                return true;
        }

    }

}

با تشکر

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

AdapterCardView adapterCardView=new AdapterCardView(getContext(),arrayList);

اینو بزارین ببینین چی میشه

arrayList.clear();

لینک ارسال
به اشتراک گذاری در سایت های دیگر
در 1 ساعت قبل، a.khosroabadi گفته است :

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


AdapterCardView adapterCardView=new AdapterCardView(getContext(),arrayList);

اینو بزارین ببینین چی میشه

arrayList.clear();

درست شد واقعا ممنونم...

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

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

  • مطالب مشابه

    • توسط scientific
      سلام وقت بخیر
      سلام من دو تا ریسایکلرویو تعریف کردم که هر کدوم آیتمهای مخصوص خودشون رو دارن ، و از یک لیوت نمونه و از یک آداپتر برای هر دو استفاده کردم،
      حالا برای رویداد کلیک آیتم ها به مشکل بر خوردم
      چون طبیعتا پوزیشن آیتم ها در هر دو ریسایکلرویو یکسان هست؛ مثلا پوزیشن آیتم اول ، در هردو ریسایکلرویو صفر هست و وقتی میگم اگر روی آیتم صفر کلیک شد برو به اکتیویتی دوم
      برای هر دو ریسایکلرویو همین اتفاق میفته؛ 
      ((یعنی وقتی روی اولین آیتم در ریسایکلرویوی اولم کلیک میکنم میره به اکتیویتی دو و‌ وقتی روی اولین آیتم از ریسایکلرویوی دوم هم کلیک میکنم بازم میره به اکتیویتی دو))
      راهنماییم کنید ممنون میشم
       
      کلاس آداپتر:
      package com.donyaeayandeh.itroducingdonyaeayandehinstitute; import android.content.Intent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Toast; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import java.util.List; public class AdapterRecyclerView extends RecyclerView.Adapter<CourseEducationViewHolder> { List<CourseModel> list; public AdapterRecyclerView(List<CourseModel> courseModelslist) { this.list = courseModelslist; } @NonNull @Override public CourseEducationViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.course_education_list_item,parent,false); return new CourseEducationViewHolder(view); } @Override public void onBindViewHolder(@NonNull final CourseEducationViewHolder holder, final int position) { // fill items from List: holder.course_education_image.setImageResource(list.get(position).getCuorse_education_icon()); holder.course_education_txt.setText(list.get(position).getCourse_education_title()); // Click recyclerView Items: holder.itemView.setOnClickListener(new View.OnClickListener() { Intent intent; @Override public void onClick(View view) { Toast.makeText(view.getContext(),"The Item Clicked is: " +holder.getLayoutPosition(),Toast.LENGTH_SHORT).show(); if(position==0){ intent=new Intent(view.getContext(),Cheshmandaz_Dore_Info.class); view.getContext().startActivity(intent); } } }); } @Override public int getItemCount() { return list.size(); } } ممنون میشم جواب بدید
       
    • توسط hamidreza.kh
      سلام دوستان خسته نباشید 
      یک ریسایکلر ویو دارم ک خب توش چندتا آیتم هستش و توی این آیتما یه imageView دارم ! 
      این imageView رو میخوام اطلاعات یعنی عکسش رو از سرور بگیرم و در گرفتنش هم مشکلی ندارم 
      فقط مشکلی که هست اینه که این عکسایی که از سرور میگیرم هم ممکنه png باشند و هم svg ! 
      با کتابخونه picasso لود میکنم و فایل های png یا jpg رو باز میکنه ولی فایل svg یا همون وکتور رو باز نمیکنه! 
      راهکاری برای حل این مشکل دارید؟!
    • توسط hamidreza.kh
      سلام خسته نباشید 
      میخوام ی ریسایکلر ویو بسازم که مثل این عکس آیکون هرکدومش متفاوتش باشه یعنی هر چندتاییش متفاوت باشن با هم چیکار کنم؟

      و دوم اینکه میخوام یه صفحه پاپ آپ بسازم مثل این عکس...برای این کار چیکار کنم؟!
       
      http://uupload.ir/files/yup_popup_page.jpg
    • توسط soroush_habibi
      سلام به همه من یه دیتابیس با یه ریسایکلر ویو ساختم ولی هرچی میکنم اطلاعات دیتابیس در ریسایکلرویو نمایش داده نمیشه.کدکلاسdatabasehelper
       
      : public class DatabaseHelpher extends SQLiteOpenHelper{ Context context; private static final String DATABASE_NAME="Mohasebat"; private static final int DATABASE_VERSION = 1; private static final String main_table = "mainpage"; private static final String table1 = "CREATE TABLE "+main_table+"(A1 TEXT NOT NULL,AM TEXT NOT NULL,A2 TEXT NOT NULL,javab TEXT NOT NULL )"; public DatabaseHelpher(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); this.context = context; } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(table1); } @Override public void onUpgrade(SQLiteDatabase db, int i, int i1) { db.execSQL("DROP TABLE IF EXISTS " + main_table); onCreate(db); } public void insertIntoDB(String A1,String AM,String A2,String javab){ SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("A1", A1); values.put("AM", AM); values.put("A2", A2); values.put("javab", javab); db.insert(main_table, null, values); db.close(); } public data getDataFromDB(){ String query = "select * from "+main_table; data model = null; SQLiteDatabase db = this.getWritableDatabase(); Cursor cursor = db.rawQuery(query,null); if (cursor.moveToFirst()){ do { String A1 = cursor.getString(0); String AM = cursor.getString(1); String A2 = cursor.getString(2); String javab = cursor.getString(3); model = new data(A1,AM,A2,javab); }while (cursor.moveToNext()); } return model; } } اینم کد ریسایکلرویو: public class Recycler_View_Adapter extends RecyclerView.Adapter<Recycler_View_Adapter.adapter>{ private ArrayList<data> data1; public Recycler_View_Adapter(ArrayList<data> data) { this.data1 = data; } @Override public adapter onCreateViewHolder(ViewGroup parent, int viewType) { View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item , parent , false); adapter ad = new adapter(v); return ad; } @Override public void onBindViewHolder(adapter holder, int position) { holder.adad1.setText(data1.get(position).getadad1()); holder.adad2.setText(data1.get(position).getAdad2()); holder.am.setText(data1.get(position).getAm()); holder.javab.setText(data1.get(position).getJavab()); } @Override public int getItemCount() { return data1.size(); } public class adapter extends RecyclerView.ViewHolder { public TextView adad1; public TextView adad2; public TextView am; public TextView javab; public adapter(final View itemView) { super(itemView); adad1 = (TextView)itemView.findViewById(R.id.adad1); adad2 = (TextView)itemView.findViewById(R.id.adad2); am = (TextView)itemView.findViewById(R.id.am); javab = (TextView)itemView.findViewById(R.id.javab); adad1.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { data1.remove(getLayoutPosition()); notifyItemRemoved(getAdapterPosition()); return false; } }); adad2.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { data1.remove(getLayoutPosition()); notifyItemRemoved(getAdapterPosition()); return false; } }); am.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { data1.remove(getLayoutPosition()); notifyItemRemoved(getAdapterPosition()); return false; } }); javab.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { data1.remove(getLayoutPosition()); notifyItemRemoved(getAdapterPosition()); return false; } }); itemView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { data1.remove(getLayoutPosition()); notifyItemRemoved(getAdapterPosition()); return false; } }); } } public void add(data d){ data1.add(d); notifyItemInserted(this.data1.size() -1); } }
      اینم کلاس data:
      public class data { public String adad1; public String am; public String adad2; public String javab; public String getadad1() { return adad1; } public void setadad1(String adad1) { this.adad1 = adad1; } public String getAdad2() { return adad2; } public void setAdad2(String adad2) { this.adad2 = adad2; } public String getAm() { return am; } public void setAm(String am) { this.am = am; } public String getJavab() { return javab; } public void setJavab(String javab) { this.javab = javab; } public data(String adad1,String am,String adad2,String javab) { this.adad1 = adad1; this.adad2 = adad2; this.am = am; this.javab = javab; } }
      اینم قسمتی از کد اکتیویتی:
      private RecyclerView rc; ArrayList<data> data1; rc = (RecyclerView) findViewById(R.id.rc); data1 = new ArrayList<>(); final Recycler_View_Adapter mAdapter = new Recycler_View_Adapter(data1); rc.setAdapter(mAdapter); rc.setLayoutManager(new LinearLayoutManager(this)); RecyclerView.ItemAnimator itemAnimator = new DefaultItemAnimator(); itemAnimator.setAddDuration(500); itemAnimator.setRemoveDuration(500); rc.setItemAnimator(itemAnimator); DatabaseHelpher helpher = new DatabaseHelpher(mainpage.this); helpher.insertIntoDB(String.valueOf(number1),"^",String.valueOf(number2),"=" + String.valueOf(rsl)); data data2 = helpher.getDataFromDB(); mAdapter.add(data2);  
    • توسط hetbo2
      سلام 
      یه ریسایکلرویو باکاردویو دارم که یه سری مطالب رو از سرور نشون میده 
      هرکدوم از مطالب یه سری چیزای مثل تیتر و یه سری چیزای دیگه و آیدی داره 
      حالا برای رفرشش میخوام 
      از اخرین ایتم ریسایکلرویو آیدی که قبلا از سرور گرفته رو بگیره و دوباره بفرسته به سرور تا پست های بعدی رو بر اساس اون آیدی لود کنه 
      قسمتی که مشکل دارم 
      گرفتن پوزیشن و آیدی اولین و اخرین ایتم ریسایکلر ویو هست
  • فایل

×
×
  • اضافه کردن...