Bu dersimizde daha önce yaptığımız recyclerview örneğini birebir kopyalayıp yeni bir proje oluşturucaz ve bu projeyi bambaşka bir recyclerview örneği için kişiselleştiricez.
Eğer önceki dersleri iyi anladıysanız bu ders size tekrar eğitimi gibi gelecektir. Tüm adımları tekrardan anlatmak istemiyorum, takıldığınız yerleri sorabilirsiniz.
Uygulamada yazılan kodlar aşağıdaki gibidir, tüm projeyi indirmek için LÜTFEN BURAYI TIKLAYINIZ…..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
public class MainActivity extends AppCompatActivity { RecyclerView recyclerView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); recyclerView= (RecyclerView) findViewById(R.id.recyclerview); EmreAdapter emreAdapter=new EmreAdapter(this, Animal.getData()); recyclerView.setAdapter(emreAdapter); LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this); linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); recyclerView.setLayoutManager(linearLayoutManager); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.layout_menu, menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { int id=item.getItemId(); switch (id){ case R.id.linearViewHorizontal: LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this); linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL); recyclerView.setLayoutManager(linearLayoutManager); break; case R.id.linearViewVertical: LinearLayoutManager linearLayoutManagerVertical=new LinearLayoutManager(this); linearLayoutManagerVertical.setOrientation(LinearLayoutManager.VERTICAL); recyclerView.setLayoutManager(linearLayoutManagerVertical); break; case R.id.gridView: GridLayoutManager mGridLayoutManager = new GridLayoutManager(this, 3); // (Context context, int spanCount) recyclerView.setLayoutManager(mGridLayoutManager); break; case R.id.staggeredViewHorizontal: StaggeredGridLayoutManager mStaggeredHorizontalLayoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.HORIZONTAL); // (int spanCount, int orientation) recyclerView.setLayoutManager(mStaggeredHorizontalLayoutManager); break; case R.id.staggeredViewVertical: StaggeredGridLayoutManager mStaggeredVerticalLayoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL); // (int spanCount, int orientation) recyclerView.setLayoutManager(mStaggeredVerticalLayoutManager); break; } return super.onOptionsItemSelected(item); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.emrealtunbilek.materialrecyclerviewhayvanlarlistesi.MainActivity"> <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/recyclerview" > </android.support.v7.widget.RecyclerView> </RelativeLayout> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" android:layout_marginTop="5dp" app:cardCornerRadius="5dp" android:id="@+id/rootCardView" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="5dp" android:orientation="vertical"> <ImageView android:id="@+id/img_row" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="5dp" android:src="@drawable/ani_dog_five"/> <TextView android:id="@+id/txv_row" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_margin="5dp" android:layout_marginLeft="10dp" android:text="Dummy Text"/> </LinearLayout> </android.support.v7.widget.CardView> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
package com.example.emrealtunbilek.materialrecyclerviewhayvanlarlistesi; import java.util.ArrayList; public class Animal { private String title; private int imageId; public String getTitle() { return title; } public int getImageId() { return imageId; } public void setTitle(String title) { this.title = title; } public void setImageId(int imageId) { this.imageId = imageId; } public static ArrayList<Animal> getData(){ ArrayList<Animal> data=new ArrayList<Animal>(); int[] images={ R.drawable.ani_cat_one, R.drawable.ani_cat_two, R.drawable.ani_cat_three, R.drawable.ani_cat_four, R.drawable.ani_cat_five, R.drawable.ani_cat_six, R.drawable.ani_cat_seven, R.drawable.ani_dog_one, R.drawable.ani_dog_two, R.drawable.ani_dog_three, R.drawable.ani_dog_four, R.drawable.ani_dog_five, R.drawable.ani_deer_one, R.drawable.ani_deer_two, R.drawable.ani_deer_three, R.drawable.ani_deer_four, R.drawable.bird_parrot_one, R.drawable.bird_parrot_two, R.drawable.bird_parrot_three, R.drawable.bird_parrot_four, R.drawable.bird_parrot_five, R.drawable.bird_parrot_six, R.drawable.bird_parrot_seven, R.drawable.bird_parrot_eight }; String[] Categories = {"Kedi 1", "Kedi 2", "Kedi 3", "Kedi 4" ,"Kedi 5" ,"Kedi 6","Kedi 7", "Köpek 1","Köpek 2","Köpek 3","Köpek 4","Köpek 5", "Geyik 1","Geyik 2","Geyik 3","Geyik 4", " Papağan 1"," Papağan 2"," Papağan 3"," Papağan 4"," Papağan 5"," Papağan 6"," Papağan 7"," Papağan 8"}; for(int i=0; i<images.length; i++){ Animal gecici=new Animal(); gecici.setImageId(images[i]); gecici.setTitle(Categories[i]); data.add(gecici); } return data; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
package com.example.emrealtunbilek.materialrecyclerviewhayvanlarlistesi; import android.content.Context; import android.support.v7.widget.RecyclerView; 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 java.util.ArrayList; public class EmreAdapter extends RecyclerView.Adapter<EmreAdapter.MyViewHolder> { ArrayList<Animal> mDataList; LayoutInflater inflater; public EmreAdapter(Context context, ArrayList<Animal> data) { //inflater= (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); inflater = LayoutInflater.from(context); this.mDataList = data; } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = inflater.inflate(R.layout.list_item, parent, false); MyViewHolder holder = new MyViewHolder(v); return holder; } @Override public void onBindViewHolder(MyViewHolder holder, int position) { Animal tiklanilanAnimal = mDataList.get(position); holder.setData(tiklanilanAnimal, position); } @Override public int getItemCount() { return mDataList.size(); } class MyViewHolder extends RecyclerView.ViewHolder { TextView hayvanAdi; ImageView hayvanResmi; public MyViewHolder(View itemView) { super(itemView); hayvanAdi = (TextView) itemView.findViewById(R.id.txv_row); hayvanResmi = (ImageView) itemView.findViewById(R.id.img_row); } public void setData(Animal tiklanilanAnimal, int position) { this.hayvanResmi.setImageResource(tiklanilanAnimal.getImageId()); this.hayvanAdi.setText(tiklanilanAnimal.getTitle()); } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/linearViewHorizontal" android:title="Linear View Horizontal" app:showAsAction="never"></item> <item android:id="@+id/linearViewVertical" android:title="Linear View Vertical" app:showAsAction="never"></item> <item android:id="@+id/gridView" android:title="Grid View" app:showAsAction="never"></item> <item android:id="@+id/staggeredViewHorizontal" android:title="Staggered View Horizontal" app:showAsAction="never"></item> <item android:id="@+id/staggeredViewVertical" android:title="Staggered View Vertical" app:showAsAction="never"></item> </menu> |
ArrayList data=new ArrayList();
int[] images={
R.drawable.ani_cat_one,
R.drawable.ani_cat_two,
R.drawable.ani_cat_three,
R.drawable.ani_cat_four,
R.drawable.ani_cat_five,
R.drawable.ani_cat_six,
R.drawable.ani_cat_seven,
R.drawable.ani_dog_one,
R.drawable.ani_dog_two,
R.drawable.ani_dog_three,
R.drawable.ani_dog_four,
R.drawable.ani_dog_five,
R.drawable.ani_deer_one,
R.drawable.ani_deer_two,
R.drawable.ani_deer_three,
R.drawable.ani_deer_four,
R.drawable.bird_parrot_one,
R.drawable.bird_parrot_two,
R.drawable.bird_parrot_three,
R.drawable.bird_parrot_four,
R.drawable.bird_parrot_five,
R.drawable.bird_parrot_six,
R.drawable.bird_parrot_seven,
R.drawable.bird_parrot_eight
};
bu kod için sorum şu:
benim resim klasörüm var ve
sürekli resim ekleyip silime işlemi yapılıyor ve
ben kaç adet resim var
isimleri ne ve
resim adları nedir bilmiyorum
bu dolayı bu alanı dinamik olarak nasıl yapabirim
Selam
https://stackoverflow.com/questions/3648942/dynamic-resource-loading-android
Burda istediğin gibi bir durum söz konusu.
getResources().getIdentifier(“fileX”, “drawable”,”com.yourapppackage.www”); diyerek var olan o anki resimleri alabilrsin