2016-04-09 16 views
0

Düzenleme: Neden bu downvoted emin değilim, dinamik olarak soruyorum YENİ pervaneler şu anda düzende olanlar değil.Dinamik olarak birden çok spinner + adaptör + dinleyici oluşturmak için en iyi yol

Dinamik olarak ayrı ayrı bağdaştırıcılar ve dinleyicilerle birden fazla iğnenin oluşturulmasının en iyi yolunu bulmaya çalışıyorum. Anlaşmaya göre, gereken iplikçiklerin sayısını (1-10 ek iplikçilerden kategori seçimine bağlı olarak değişen IE): araç model yılı, ayakkabı: beden, renk vb.) Sunucu tarafında sunarım. Bunu nasıl yorumlayabilir, dinamik olarak oluşturabilir ve kullanıcı seçimlerini nasıl yapabilirim? Bu mümkün mü? Sadece yerel olarak sorgulamak edeceğiz böylece

cevap

1

Böyle görünümler oluşturmak için bir sınıf oluşturmanız gerekecektir. Ancak boş bir LinearLayout veya istediğiniz her şeyi içeren etkinliğiniz için bir düzeninizin olması gerekir. Örneğin, bir spikeri oluşturmak için bir sınıf oluşturursanız, bu şekilde görünmelidir.

public class MyViewController { 
     private Context context; 
     public MyViewController(Context context) { 
       this.context = context; 
     } 

     public Spinner getSpinner() { 
      return new Spinner(context); 
     } 

     public ArrayAdapter getAdapter(int resId, String[] values) { 
      return new ArrayAdpter(context, resId, values); 
     } 
    } 

Artık sizin Aktivitenizde veya Fragmanınızda veya başka bir sınıfta böyle bir şey yapabilirsiniz.

public class MainActivity extends Activity { 
      private LinearLayout mainLayout; 
      private String[] values = {"Hello", "Java", "Android"}; 
      private String[] values2 = {"Hmmm", "OK", "Bye"}; 
      private MyViewController myViewController; 

      @Override 
      protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
        mainLayout = (LinearLayout) findViewById 
          (R.id.main_linear_layout); 
        myViewController = new MyViewController(this); 
        LinearLayout.LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 
        params.setMargins(0, 5, 0, 5); 
        for (int i = 0; i < 10; ++i) { 
         Spinner spin = myViewController.getSpinner(); 
         ArrayAdapter adapter; 
         if (i % 2 == 0) { 
          adapter = myViewController.getAdapter(R.layout.my_custom_style, values); 
         } else { 
          adapter = myViewController.getAdapter(R.layout.my_custom_style, values2); 
         } 
         spin.setAdapter(adapter); 
         mainLayout.addView(spin, params); 
        } 

      } 
    } 
0

depola SQLite veritabanı üzerinde her eğiren değerleri:

ben bakıyordum.

+0

Bu benim aradığım şey değil, dinamik olarak şu anda ekranda olmayanlar için yeni bir iplikçik üretmekteyim. – Petro

İlgili konular