2

build.gradle

build.gradle file all dependecy and plugin of library and also define some other required configration in it.

        apply plugin: 'com.android.application'

        android {
            compileSdkVersion 23
            buildToolsVersion "23.0.3"

            defaultConfig {
                applicationId "com.example.admin.app_shewale"
                minSdkVersion 16
                targetSdkVersion 23
                versionCode 1
                versionName "1.0"
            }
            buildTypes {
                release {
                    minifyEnabled false
                    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                }
            }
        }

        dependencies {
            compile fileTree(dir: 'libs', include: ['*.jar'])
            testCompile 'junit:junit:4.12'
            compile 'com.android.support:appcompat-v7:23.4.0'
            compile 'com.android.support:support-v4:23.4.0'
            compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
            compile 'com.github.bumptech.glide:glide:3.7.0'
            compile 'com.android.support:recyclerview-v7:24.0.0-beta1'
            compile files('src/main/java/libs/YouTubeAndroidPlayerApi.jar')
            compile 'com.android.support:cardview-v7:24.0.0-beta1'
            compile files('src/main/java/libs/volley.jar')
        }

Mainactivity.java

this is mainclass that contain recycleview,and also send a request to server get jsonarray by using volly library afer getting jsonarray parse data then bind to list,send to adapter.this class also define onscrollchangelistener whenever userreach end of list show progress bar after load moredata from server

        package com.example.gallery;

        import android.annotation.TargetApi;
        import android.support.v7.app.AppCompatActivity;
        import android.os.Bundle;
        import android.support.v7.widget.GridLayoutManager;
        import android.support.v7.widget.LinearLayoutManager;
        import android.support.v7.widget.RecyclerView;
        import android.view.View;
        import android.widget.ProgressBar;
        import android.widget.TextView;
        import android.widget.Toast;
        import com.android.volley.RequestQueue;
        import com.android.volley.Response;
        import com.android.volley.VolleyError;
        import com.android.volley.toolbox.JsonArrayRequest;
        import com.android.volley.toolbox.Volley;
        import com.example.admin.app_shewale.R;
        import com.example.vikaskame.VikasGallery;
        import org.json.JSONArray;
        import org.json.JSONException;
        import org.json.JSONObject;
        import java.util.ArrayList;
        import java.util.List;

        public class Gallery_byVolly extends AppCompatActivity implements RecyclerView.OnScrollChangeListener {


            RecyclerView gallerygridview1;
            TextView gallerytext;
            List<VikasGallery> gallerylist1;
            private RequestQueue requestQueue;
            CardAdapter adapter;
            private int requestCount = 1;
            public static final String DATA_URL= "http://1biz.in/shevale_app/android/shevale.php?page=";
            private RecyclerView.LayoutManager layoutManager;

            protected void onCreate(Bundle savedInstanceState)
            {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_gallery_by_volly);
                gallerygridview1 = (RecyclerView) findViewById(R.id.vollygallerygridview);
                gallerygridview1.setHasFixedSize(true);
                layoutManager = new GridLayoutManager(this,2);
                gallerygridview1.setLayoutManager(layoutManager);
                gallerylist1 = new ArrayList<>();
                requestQueue = Volley.newRequestQueue(this);
                //Calling method to get data to fetch data
                getData();

                //Adding an scroll change listener to recyclerview
                gallerygridview1.setOnScrollChangeListener(this);
                System.out.println("value of list in parse m" + gallerylist1);
                //initializing our adapter
                adapter = new CardAdapter(gallerylist1, this);

                //Adding adapter to recyclerview
                gallerygridview1.setAdapter(adapter);
            }

            //Request to get json from server we are passing an integer here
            //This integer will used to specify the page number for the request ?page = requestcount
            //This method would return a JsonArrayRequest that will be added to the request queue
            private JsonArrayRequest getDataFromServer(int requestCount)
            {
                //Initializing ProgressBar
                final ProgressBar progressBar = (ProgressBar) findViewById(R.id.progressBar1);
                //Displaying Progressbar
                progressBar.setVisibility(View.VISIBLE);
                setProgressBarIndeterminateVisibility(true);
                //JsonArrayRequest of volley
                JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Config.DATA_URL + String.valueOf(requestCount),new Response.Listener<JSONArray>()
                {
                    @Override
                    public void onResponse(JSONArray response)
                    {
                        //Calling method parseData to parse the json response
                        System.out.println("value of response is"+response);
                        parseData(response);
                        //Hiding the progressbar
                        progressBar.setVisibility(View.GONE);
                    }
                },
                        new Response.ErrorListener() {
                            @Override
                            public void onErrorResponse(VolleyError error)
                            {
                                progressBar.setVisibility(View.GONE);
                                //If an error occurs that means end of the list has reached
                                Toast.makeText(Gallery_byVolly.this, "No More Items Available", Toast.LENGTH_SHORT).show();
                            }
                        });

                //Returning the request
                return jsonArrayRequest;
            }

            //This method will get data from the web api
            private void getData()
            {
                //Adding the method to the queue by calling the method getDataFromServer
                requestQueue.add(getDataFromServer(requestCount));
                //Incrementing the request counter
                requestCount++;
            }

            //This method will parse json data
            private void parseData(JSONArray array)
            {
                for (int i = 0; i < array.length(); i++)
                {
                    //Creating the superhero object
                    VikasGallery superHero = new VikasGallery();
                    JSONObject json = null;
                    try {
                        //Getting json
                        json = array.getJSONObject(i);
                        //Adding data to the superhero object
                        superHero.setImagesurl(json.getString(Config.TAG_IMAGE_URL));
                    }
                    catch (JSONException e)
                    {
                        e.printStackTrace();
                    }
                    //Adding the superhero object to the list
                    gallerylist1.add(superHero);
                    System.out.println("value of list inside  parse m" + gallerylist1);
                }

                //Notifying the adapter that data has been added or changed
                adapter.notifyDataSetChanged();
            }
            private boolean isLastItemDisplaying(RecyclerView recyclerView)
            {
                if (recyclerView.getAdapter().getItemCount() != 0)
                {

                    int lastVisibleItemPosition = ((LinearLayoutManager) recyclerView.getLayoutManager()).findLastCompletelyVisibleItemPosition();
                    if (lastVisibleItemPosition != RecyclerView.NO_POSITION && lastVisibleItemPosition == recyclerView.getAdapter().getItemCount() - 1)
                        return true;
                }
                return false;
            }
            //Overriden method to detect scrolling
            public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY)
            {
                //Ifscrolled at last then
                if (isLastItemDisplaying(gallerygridview1))
                {
                    //Calling the method getdata again
                    getData();
                }
            }
        }

this is the adapter class that is use to show all the images in recyleview

get the list of record in constructor and show all the images in one by one in.

Adapter.java

        package com.example.gallery;
        import android.content.Context;
        import android.support.v7.widget.RecyclerView;
        import android.view.LayoutInflater;
        import android.view.View;
        import android.view.ViewGroup;
        import com.android.volley.toolbox.ImageLoader;
        import com.android.volley.toolbox.NetworkImageView;
        import com.example.admin.app_shewale.R;
        import com.example.vikaskame.VikasGallery;
        import java.util.ArrayList;
        import java.util.List;
        public class Gallery_VollyAdapter extends RecyclerView.Adapter<Gallery_VollyAdapter.ViewHolder> {
        //Imageloader to load image
        private ImageLoader imageLoader;
        private Context context;


                List<VikasGallery> superHeroes;

        //Constructor of this class
        public Gallery_VollyAdapter(List<VikasGallery> superHeroes, Context context){
                super();
                //Getting all superheroes
                this.superHeroes = superHeroes;
                this.context = context;
            System.out.println("values of list is1"+superHeroes);
                }

        @Override
        public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
        {
                View v = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.vollyitemlist, parent, false);
                ViewHolder viewHolder = new ViewHolder(v);
                return viewHolder;
                }

        @Override
        public void onBindViewHolder(ViewHolder holder, int position)
        {
                 superHeroes=new ArrayList<>();
                //Getting the particular item from the list
                VikasGallery superHero =  superHeroes.get(position);
                System.out.println("values of list is2"+superHeroes);
                //Loading image from url
                imageLoader = CustomVolleyRequest.getInstance(context).getImageLoader();
                imageLoader.get(superHero.getImagesurl(), ImageLoader.getImageListener(holder.imageView, R.drawable.five, android.R.drawable.ic_dialog_alert));
                //Showing data on the views
                holder.imageView.setImageUrl(superHero.getImagesurl(), imageLoader);
                }

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

        class ViewHolder extends RecyclerView.ViewHolder
        {
            //Views
            public NetworkImageView imageView;

            //Initializing Views
            public ViewHolder(View itemView)
            {
                super(itemView);
                imageView = (NetworkImageView) itemView.findViewById(R.id.vollyimage);
            }
        }

        }

logcat

after executing 5.0 show these type of error in logcat show some kind of error i do'nt know why is happen

but above 5.1 working fine

    FATAL EXCEPTION: main
                                                     Process: com.example.admin.app_shewale, PID: 7783
                                                     java.lang.NoClassDefFoundError: com.example.gallery.Gallery_byVolly
                                                         at com.example.admin.app_shewale.MainActivity.onClick(MainActivity.java:165)
                                                         at android.view.View.performClick(View.java:4756)
                                                         at android.view.View$PerformClick.run(View.java:19749)
                                                         at android.os.Handler.handleCallback(Handler.java:739)
                                                         at android.os.Handler.dispatchMessage(Handler.java:95)
                                                         at android.os.Looper.loop(Looper.java:135)
                                                         at android.app.ActivityThread.main(ActivityThread.java:5221)
                                                         at java.lang.reflect.Method.invoke(Native Method)
                                                         at java.lang.reflect.Method.invoke(Method.java:372)
                                                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
                                                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

Mainactivity.class

this the mainclass which in define all the function and also define all home pages button whenever user click on that button show next activity

public class MainActivity extends AppCompatActivity implements View.OnClickListener
        {

    TextView homefirst, homesecond, homethird, homefourth, homefifth, homesix, homeseven, homeeight, homenine, hometen, homeeleve, hometwelve;
    Boolean exit = false;
    ViewFlipper viewFlipper;
    private Animation slide_in_left;
    ImageView firstimg, secondimg2, thirdimg3;
    TextView slideretext;
            private Handler handler=new Handler();
            private int delay = 5000; //milliseconds
            private int page = 0;
            ViewPager sliderviewpager;
            Slider_Adapter adapter;
            List<Slidercls> imagesliderlist;

            Runnable runnable = new Runnable()
            {
                public void run()
                {
                    if (adapter.getCount() == page)
                    {
                        page = 0;
                    } else {
                        page++;
                    }
                    sliderviewpager.setCurrentItem(page, true);
                    handler.postDelayed(this, delay);
                }
            };
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        sliderviewpager=(ViewPager)findViewById(R.id.sliderviewpager);
        imagesliderlist=getListData();
        adapter = new Slider_Adapter(MainActivity.this,imagesliderlist);
        sliderviewpager.setAdapter(adapter);
       // sliderviewpager.setCurrentItem(0);
        homefirst = (TextView) findViewById(R.id.homefirst);
        homesecond = (TextView) findViewById(R.id.homesecond);
        homethird = (TextView) findViewById(R.id.homethree);
        homefourth = (TextView) findViewById(R.id.homefourth);
        homefifth = (TextView) findViewById(R.id.homefive);
        homesix = (TextView) findViewById(R.id.homesix);
        homeseven = (TextView) findViewById(R.id.homeseven);
        homeeight = (TextView) findViewById(R.id.homeeight);
        homenine = (TextView) findViewById(R.id.homenine);
        hometen = (TextView) findViewById(R.id.hometen);
        homeeleve = (TextView) findViewById(R.id.homeeleven);
        hometwelve = (TextView) findViewById(R.id.hometwelve);
        homefirst.setOnClickListener(this);
        homesecond.setOnClickListener(this);
        homethird.setOnClickListener(this);
        homefourth.setOnClickListener(this);
        homefifth.setOnClickListener(this);
        homesix.setOnClickListener(this);
        homeseven.setOnClickListener(this);
        homeeight.setOnClickListener(this);
        homenine.setOnClickListener(this);
        hometen.setOnClickListener(this);
        homeeleve.setOnClickListener(this);
        hometwelve.setOnClickListener(this);

    }

            private ArrayList<Slidercls> getListData()
            {
                ArrayList<Slidercls> listMockData = new ArrayList<Slidercls>();
                String[] images = getResources().getStringArray(R.array.sliderimages);
                String[] text=getResources().getStringArray(R.array.slidertext);
                for (int i = 0; i < images.length; i++)
                {
                    Slidercls newsData = new Slidercls();
                    newsData.setImageurl(images[i]);
                    newsData.setImgtitle(text[i]);
                    listMockData.add(newsData);
                }
                return listMockData;
            }


    public void onClick(View v) {

        switch (v.getId()) {
            case R.id.homefirst:
                startActivity(new Intent(MainActivity.this, Viyaktigai_Mahitiactivity.class));
                overridePendingTransition(R.anim.slideup, R.anim.nochange);
                break;
            case R.id.homesecond:
                startActivity(new Intent(MainActivity.this, Vikaskame.class));
                overridePendingTransition(R.anim.slideup, R.anim.nochange);
                break;
            case R.id.homethree:
                startActivity(new Intent(MainActivity.this, Andolane_Activity.class));
                overridePendingTransition(R.anim.slideup, R.anim.nochange);
                break;
            case R.id.homefourth:
                startActivity(new Intent(MainActivity.this, Katran_Activity.class));
                overridePendingTransition(R.anim.slideup, R.anim.nochange);
                break;
            case R.id.homefive:
                startActivity(new Intent(MainActivity.this, Samajik_karyaActivity.class));
                overridePendingTransition(R.anim.slideup, R.anim.nochange);
                break;
            case R.id.homesix:
                startActivity(new Intent(MainActivity.this, Sarvajanikutsav_Activity.class));
                overridePendingTransition(R.anim.slideup, R.anim.nochange);
                break;
            case R.id.homeseven:
                startActivity(new Intent(MainActivity.this, com.example.gallery.Gallery_byVolly.class));
                overridePendingTransition(R.anim.slideup, R.anim.nochange);
                break;
            case R.id.homeeight:
               startActivity(new Intent(MainActivity.this, VideoMain.class));
                overridePendingTransition(R.anim.slideup, R.anim.nochange);
                break;
            case R.id.homenine:
                startActivity(new Intent(MainActivity.this, Mahtwcha_link_Activity.class));
                overridePendingTransition(R.anim.slideup, R.anim.nochange);
                break;
            case R.id.hometen:
                startActivity(new Intent(MainActivity.this, Puraskar_Activity.class));
                overridePendingTransition(R.anim.slideup, R.anim.nochange);
                break;
            case R.id.homeeleven:
                startActivity(new Intent(MainActivity.this, Profile_Activity.class));
                overridePendingTransition(R.anim.slideup, R.anim.nochange);
                break;
            case R.id.hometwelve:
                startActivity(new Intent(MainActivity.this, Sampark_Activity.class));
                overridePendingTransition(R.anim.slideup, R.anim.nochange);
                break;

        }
    }
OneCricketeer
  • 179,855
  • 19
  • 132
  • 245
sumeet
  • 23
  • 6
  • Future notes - 1) Please read over how to format your questions. You can see a preview before you post. 2) Try to create a [mcve] of the problem – OneCricketeer Jul 26 '16 at 06:51
  • And you can remove every line that starts with `compile files` in your Gradle file. The JARS go in the libs folder of the project, not in `/src/main/java` – OneCricketeer Jul 26 '16 at 06:54
  • there is any limitation of ask questions here – sumeet Jul 26 '16 at 06:55

1 Answers1

0

Please remove

compile files('src/main/java/libs/volley.jar')

and Replace

compile 'com.android.volley:volley:1.0.0'

Update Code

startActivity(new Intent(MainActivity.this, Gallery_byVolly.class));
            overridePendingTransition(R.anim.slideup, R.anim.nochange);
            break;

Refer this Link
onScrollChanged() never fired on Android 4.0

Community
  • 1
  • 1
Vinothkumar Nataraj
  • 588
  • 2
  • 7
  • 23