Working with Next and Previous button for Array in Android

MainActivity.java


public class MainActivity extends AppCompatActivity {
ListView listView;
        ListSongs=new ArrayList<>();
    int Position,size,take;
   public static final int MY_PERMISSION_READ_EXTERNAL_STORAGE=1;
    String[] FavouriteActors;

    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        ShowSongList();




           }



    public void ShowSongList(){
        if(ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED){
            if(ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.READ_EXTERNAL_STORAGE)) {
            }else{ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},MY_PERMISSION_READ_EXTERNAL_STORAGE);
            }
        }else{
            getSongs();
            FavouriteActors=Songs.toArray(new String[Songs.size()]);



            listView=(ListView)findViewById(R.id.lists);
            ArrayAdapter adapter=new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,FavouriteActors);
            listView.setAdapter(adapter);
            listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override                public void onItemClick(AdapterView adapterView, View view, int i, long l) {
                        Position=i;
                    size=listView.getCount();

                    String Name=String.valueOf(listView.getItemAtPosition(Position));
                    Intent send=new Intent(getApplicationContext(),NextandPrevious.class);
                    send.putExtra("position",Position);
                    send.putExtra("value",Name);
                    send.putExtra("length",size);
                    send.putExtra("array",FavouriteActors);
                    startActivity(send);


                }
            });
        }
    }
    public void getSongs(){
        try{
            ContentResolver c=getContentResolver();
            Uri uri=MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
            Cursor cursor=c.query(uri,null,null,null,null);
            if(cursor!=null &&cursor.moveToFirst()){
                int song=cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME);
                do{
                    String SongName=cursor.getString(song);
                    Songs.add(SongName);

                }while(cursor.moveToNext());
            }cursor.close();
        }catch (NumberFormatException e){
            e.printStackTrace();
        }
    }

    @Override    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        switch(requestCode){
            case -1:
                //hello
                break;
            case MY_PERMISSION_READ_EXTERNAL_STORAGE:
                if(grantResults.length>0 && grantResults[0]==PackageManager.PERMISSION_GRANTED){
                    ShowSongList();
                }else{
                    Toast.makeText(getApplicationContext(),"You've denied permission",Toast.LENGTH_LONG).show();

                }
                break;
            default:
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);}

    }


}


NextandPrevious.java

public class NextandPrevious extends Activity implements View.OnClickListener{
ImageButton back,next;
    int pos,len;
    String val;
    TextView show;
    String data;String[] nowdata;


    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_nextand_previous);
        back=(ImageButton)findViewById(R.id.back);
        next=(ImageButton)findViewById(R.id.next);
        show=(TextView)findViewById(R.id.textView);
        back.setOnClickListener(this);
        next.setOnClickListener(this);
        Intent get=getIntent();
        pos=get.getExtras().getInt("position");
        val=get.getExtras().getString("value");
        len=get.getExtras().getInt("length");
        nowdata=get.getExtras().getStringArray("array");

        show.setText(String.valueOf(val));

    }

    @Override    public void onClick(View view) {
        switch(view.getId()){
            case R.id.back:
                if(pos==0){
                   pos=len;
                    pos=pos-1;
                    show.setText(nowdata[pos]);
                }
                else{
                    pos=pos-1;

                    show.setText(nowdata[pos]);
                }
                break;
            case R.id.next:
                pos=pos+1;
                if(pos>=len){
                    pos=0;
                }

               show.setText(nowdata[pos]);



                break;
        }
    }


}

Comments

Popular posts from this blog

Reasoning-Number Series

Reasoning-Letter Series

Multiply Negative numbers in java