2016-04-09 8 views
0

編集:これがなぜ落とされたのか分かりませんが、私は動的に質問しています 現在、複数のスピナー+アダプター+リスナーを動的に作成する最適な方法

個別のアダプタとリスナーを動的に使用して、複数のスピナーの生成を処理する最良の方法を理解しようとしています。ここでは、私は必要なスピナーの数を供給しています(カテゴリー選択に応じて1から10の追加スピナーIE:車は年式、靴:サイズ、色など...)サーバー側になります。これをどのように解釈し、動的に作成し、ユーザーの選択を得ることができますか?これも可能ですか?

私は見ていた:あなたはちょうどそれをローカルに照会しますので

答えて

1

このようなビューを作成するためのクラスを作成する必要があります。しかし、空のLinearLayoutを含むアクティビティ用のレイアウトや、必要なものを何らかのレイアウトで配置する必要があります。たとえば、スピナーを作成するためのクラスを作成する場合は、次のようになります。

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); 
     } 
    } 

は、今すぐあなたの活動またはその断片もしくは他のクラスでは、あなたがこのような何かを行うことができます。

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

ストアのSQLiteデータベース上の各スピナーの値を。

+0

これは私が探しているものではありません。新しいスピナーを現在画面に表示されていないものに動的に作成することを求めています。 – Petro

関連する問題