2013-08-22 3 views
0

получили проблемуГорячо данные зависимых в андроиде

Есть 2 кок на макете и хотите получить зависимость этой блесны структуры

String[] main={"Moscov","LosAngeles","Pekin"}; 
String[] one={"1","2","3","4"}; 
String[] two={"2","2","5","8"}; 
String[] tree={"5","7","3","2"}; 

Создать первый адаптер для первой блесны с основным массивом. И в зависимости для выбора пункта должны конкретизирована адаптер с массивом, которые зависят от выбора Если пункт 1, то переходника с массивом один, если элемент 2, то массив два

+0

У вас возникла проблема? –

ответ

1

Вы создать свой spinner и просто установить Adapter для второго spinner по к выбору с использованием onItemSelected на первом Spinner. Что-то вроде

@Override 
public void onItemSelected(AdapterView<?> spinner, View view, int position,long arg3) 
{ 
     TextView tv = (TextView)view; // convert the view to TextView 
     String selected = tv.getText().toString(); 
     if (selected.equals("Moscov")) 
     { 
      // set the Adapter here with the first set of values 
     } 
     else if(selected.equals("LosAngeles")) 
     { 
      // set the Adapter here with the second set of values 
     } 
     else 
     { 
      // set the Adapter here with the third set of values 
     } 
} 

Вы также можете использовать position, которые могут быть более масштабируемым, если вы кладете String Arrays в ArrayList.

+0

Это был бы прекрасный ответ, я думаю !!! –

+0

Если это работает для вас, пожалуйста, нажмите галочку рядом с ответом :) – codeMagic

+0

yep) это приятно)) но это пример, и у меня есть 85 массивов =) end хочу сделать автоматически автоматически этот процесс –

1
@Override 
public void onItemSelected(AdapterView<?> spinner, View view, int position,long arg3) 
{ 

     switch(position) 
     { 
     case : 0; 
     // called first array 
     break; 

     case : 1; 
     // called second array 
     break; 
    } 
} 
0

Checkout этот фрагмент кода, в этом значения блесны 2 зависит от блесны 1

public class MainActivity extends Activity { 

Spinner s1,s2; 
Button btn; 
String s; 
TextView tv; 
ArrayAdapter<String> adap1,adap2,adap3; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    s1=(Spinner)findViewById(R.id.spinner1); 
    s2=(Spinner)findViewById(R.id.spinner2); 
    btn=(Button)findViewById(R.id.button1); 
    tv=(TextView)findViewById(R.id.tv1); 


    String[] v1=getResources().getStringArray(R.array.c1); 
    String[] v2=getResources().getStringArray(R.array.c2); 
    String[] v3=getResources().getStringArray(R.array.c3); 

    adap1=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, v1); 
    adap2=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, v2); 
    adap3=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, v3); 

} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 
public class ItemSelectedListenerr implements OnItemSelectedListener { 

    String[] v=getResources().getStringArray(R.array.c1); 
    public String s; 
    @Override 
    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, 
      long arg3) { 
     // TODO Auto-generated method stub 

     s=arg0.getItemAtPosition(arg2).toString(); 
     if(arg2==0) 
     { 
      s2.setAdapter(adap1); 
     } 
     if(arg2==1) 
     { 
      s2.setAdapter(adap2); 
     } 
     if(arg2==2) 
     { 
      s2.setAdapter(adap3); 
     } 

     tv.setText(s); 
     Log.i("hahaha", "item selected is"+s); 

    } 


    @Override 
    public void onNothingSelected(AdapterView<?> arg0) { 
     // TODO Auto-generated method stub 

    } 

} 

} 

Я надеюсь, что это поможет вам. :)

Смежные вопросы