2016-01-14 35 views
8

Ben nesnelerin bu ArrayList var ve ben böyle benim spinner en adaptör olarak ayarlamak gerekir:, sadece iki tane Bu benim İletişim nesnenin bir örnektirkullanın nesne dizisi listesi

ArrayList<Contact> contactlist= new ArrayList<Contact>(); 
contactlist.add("Gabe"); 
contactlist.add("Mark"); 
contactlist.add("Bill"); 
contactlist.add("Steve"); 

ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, contactlist); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

contactsSpinner.setAdapter(adapter); 

değişkenler, İsim ve kimlik

Contact contact = new Contact(); 
    contact.setName("Gabe") 
    contact.setID("14575") 
belleğe iletişim adresi gösteriyor çünkü spinner şov ArrayList'den kişinin adını yapmak gerekir ve seçildiklerinde, ben, iletişim numarası dönmek gerekir

başka bir işlem yapmak. Bunu nasıl yapabilirim?

+0

da mevcuttur. Kodun ne yaptığını açıklayabilir misiniz, yoksa bunu yapmak için tam olarak neye ihtiyacın var? – nasch

+0

https://stackoverflow.com/questions/29077135/populate-spinner-with-custom-object/45222776?noredirect=1#comment77412955_45222776 –

cevap

32

Merhaba, yapmanız gereken şey oldukça kolay, sınıfınızdaki Kişiye ulaşın, toString() yöntemini geçersiz kılın ve ilgili kişinin adını döndürün. Örneğe bakın.

o Sorunuzun tam olarak ne olduğu ya da soruyorsun hatta kaç soru bana net değil github

public class SpinnerTestOneActivity extends AppCompatActivity { 

    private Spinner spinner; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_spinner_test_one); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.my_custom_toolbar); 
     setSupportActionBar(toolbar); 

     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

     initializeUI(); 
    } 

    private void initializeUI() { 

     spinner = (Spinner) findViewById(R.id.SpinnerTestOneActivity_spinner); 

     ArrayList<Contact> contacts = new ArrayList<>(); 

     for (int i = 0; i < 10; i++) { 
      contacts.add(new Contact("Name_" + i, "Id_" + i)); 
     } 

     ArrayAdapter<Contact> adapter = 
       new ArrayAdapter<Contact>(getApplicationContext(), R.layout.simple_spinner_dropdown_item, contacts); 
     adapter.setDropDownViewResource(R.layout.simple_spinner_dropdown_item); 

     spinner.setAdapter(adapter); 

    } 

    private class Contact { 
     private String contact_name; 
     private String contact_id; 

     public Contact() { 
     } 

     public Contact(String contact_name, String contact_id) { 
      this.contact_name = contact_name; 
      this.contact_id = contact_id; 
     } 

     public String getContact_name() { 
      return contact_name; 
     } 

     public void setContact_name(String contact_name) { 
      this.contact_name = contact_name; 
     } 

     public String getContact_id() { 
      return contact_id; 
     } 

     public void setContact_id(String contact_id) { 
      this.contact_id = contact_id; 
     } 

     /** 
     * Pay attention here, you have to override the toString method as the 
     * ArrayAdapter will reads the toString of the given object for the name 
     * 
     * @return contact_name 
     */ 
     @Override 
     public String toString() { 
      return contact_name; 
     } 
    } 

} 

çıkışı

contact_image

+1

Çok fazla tanklarım! Harika cevap için +1. – Rafael

+0

Hoşgeldiniz, yardım edebileceğime sevindim :) ....... github adresindeki kodu kontrol edin https://github.com/pankajnimgade/Tutorial/blob/master/app/src/main/java/ SpinnerTestOneActivity.java –

+0

Merhaba Yukarıdaki kod çalışıyor. –

İlgili konular