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
Post a Comment