Android Custom Spinner Kullanımı
ad area

Ö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.

Bu makaleyi paylaşın:
İstanbul'da yaşıyorum.Web üzerinde Frontend/Backend Geliştirmenin yanı sıra, Android Geliştirme, PHP/ASP.NET, C# Yazılım Uzmanlığı ve Java konuları işliyorum. Kod Şiirdir, onları seviyorum.

Bir yorum bırakın