Android Custom Spinner Kullanımı

Android Custom Spinner Kullanımı

Android Custom Spinner Kullanımı

Android BaseAdapter ve Spinner Özelleştirilmesi

Android Custom Spinner Kullanımı

Öncelikle MainActivity için aşağıdaki kodları ekleyiniz.

public class MainActivity extends AppCompatActivity {
    Spinner spinner;
    CustomAdapter adapter;
    int[] bayraklar = {R.drawable.tr,R.drawable.ar,R.drawable.in,R.drawable.tn};
    String[] ulkeler = {"Türkiye Cumhuriyeti","Suudi Arabistan","Hindistan","Tunus"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        adapter = new CustomAdapter(this,bayraklar,ulkeler);
        spinner = findViewById(R.id.spinner);
        spinner.setAdapter(adapter);
    }
}

activity_main.xml için;

<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

custom_spinner_items.xml oluşturun ve içerisine aşağıdakileri dahil edin;

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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">

<ImageView
android:layout_margin="10dp"
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="28dp"
app:srcCompat="@drawable/ic_launcher_background" />

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="137dp"
android:layout_marginTop="29dp"
android:text="TextView" />
</RelativeLayout>

Drawable klasörüne ülke bayraklarını 48x48 png formatında kaydediniz.

CustomAdapter.java oluşturun ve içerisine aşağıdakileri ekleyin;

public class CustomAdapter extends BaseAdapter {
Context context;
int flags[];
String[] countryNames;
LayoutInflater layoutInflater;

public CustomAdapter(Context context, int[] flags, String[] countryNames){
this.context = context;
this.flags = flags;
this.countryNames = countryNames;
layoutInflater = (LayoutInflater.from(context));
}

@Override
public int getCount() {
return flags.length;
}

@Override
public Object getItem(int position) {
return null;
}

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

@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = layoutInflater.inflate(R.layout.custom_spinner_items, null);
ImageView icon = (ImageView) convertView.findViewById(R.id.imageView);
TextView names = (TextView) convertView.findViewById(R.id.textView);
icon.setImageResource(flags[position]);
names.setText(countryNames[position]);
return convertView;
}
}

iyi çalışmalar diliyorum.


İlgili kelimeler;
spinner custom adapter android androidstudio studio baseadapter
İlgili kategori;
Android Studio Dersleri
Makaleyi paylaşın; Google+FacebookTwitterTumblrPinterestLinkedIn

Benzer makaleler mi eklemeliyim ? Bana LinkedIn ve Github adreslerimden üzerinden ulaşabilirsiniz.