2014-10-28 2 views
0

У меня есть 4 Spinners и 1 Button в Activity A. Я использую это Button, чтобы открыть другое Activity B. Теперь я хочу показать выбранную Spinners информацию в Activity B. Я знаю, как передавать данные с EditText, но я не знаю с Spinners.Прохождение прядильщика информации в другую деятельность

Пожалуйста, помогите мне получить Spinners информации от другого Activity

public class MainActivity extends ActionBarActivity { 

private Button btn; 
private Spinner spin1; 
private Spinner spin2; 
private Spinner spin3; 
private Spinner spin4; 


public class SpinnersData implements Serializable 
{ 
    private String spinner1; 
    private String spinner2; 
    private String spinner3; 
    private String spinner4; 


    public String getSpinner1() 
    { 
     return spinner1; 
    } 
    public void setSpinner1(String spinner1) 
    { 
     this.spinner1 = spinner1; 
    } 
    public String getSpinner2() 
    { 
     return spinner2; 
    } 
    public void setSpinner2(String spinner2) 
    { 
     this.spinner2 = spinner2; 
    } 
    public String getSpinner3() 
    { 
     return spinner3; 
    } 
    public void setSpinner3(String spinner3) 
    { 
     this.spinner3 = spinner3; 
    } 
    public String getSpinner4() 
    { 
     return spinner4; 
    } 
    public void setSpinner4(String spinner10) 
    { 
     this.spinner4 = spinner4; 
    } 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    btn= (Button)findViewById(R.id.button1); 
    spin1=(Spinner)findViewById(R.id.spinner1); 
    final String arr1[] = {"NONE"," 1*£5.49","2*2.00","3*4.00"}; 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_dropdown_item_1line, arr1); 
    spin1.setAdapter(adapter); 
    spin1.setOnItemSelectedListener(new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> arg0, View arg1, 
       int arg2, long arg3) { 
      // TODO Auto-generated method stub 
      Toast.makeText(MainActivity.this, "the item selected "+arr1[arg2],Toast.LENGTH_SHORT).show(); 

     } 

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

     } 
    }); 
    spin1=(Spinner)findViewById(R.id.spinner1); 
    final String arr2[] = {"NONE"," 1*£5.49","2*2.00","3*4.00"}; 
    ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_dropdown_item_1line, arr2); 
    spin2.setAdapter(adapter); 
    spin2.setOnItemSelectedListener(new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> arg0, View arg1, 
       int arg2, long arg3) { 
      // TODO Auto-generated method stub 
      Toast.makeText(MainActivity.this, "the item selected "+arr2[arg2],Toast.LENGTH_SHORT).show(); 

     } 

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

     } 
    }); 
    spin3=(Spinner)findViewById(R.id.spinner1); 
    final String arr3[] = {"NONE"," 1*£5.49","2*2.00","3*4.00"}; 
    ArrayAdapter<String> adapter3 = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_dropdown_item_1line, arr3); 
    spin3.setAdapter(adapter); 
    spin3.setOnItemSelectedListener(new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> arg0, View arg1, 
       int arg2, long arg3) { 
      // TODO Auto-generated method stub 
      Toast.makeText(MainActivity.this, "the item selected "+arr3[arg2],Toast.LENGTH_SHORT).show(); 

     } 

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

     } 
    }); 
    spin4=(Spinner)findViewById(R.id.spinner1); 
    final String arr4[] = {"NONE"," 1*£5.49","2*2.00","3*4.00"}; 
    ArrayAdapter<String> adapter4 = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_dropdown_item_1line, arr4); 
    spin4.setAdapter(adapter); 
    spin4.setOnItemSelectedListener(new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> arg0, View arg1, 
       int arg2, long arg3) { 
      // TODO Auto-generated method stub 
      Toast.makeText(MainActivity.this, "the item selected "+arr4[arg2],Toast.LENGTH_SHORT).show(); 

     } 

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

     } 
    }); 

    btn= (Button)findViewById(R.id.button1); 
    btn.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 
      Intent inte = new Intent (MainActivity.this, Finalorder.class); 
      SpinnersData data = new SpinnersData(); 
      data.setSpinner1(spin1.getSelectedItem().toString()); 
      data.setSpinner2(spin2.getSelectedItem().toString()); 
      data.setSpinner3(spin3.getSelectedItem().toString()); 
      data.setSpinner4(spin4.getSelectedItem().toString()); 

      inte.putExtra("SPINNERVAL", data); 
      startActivity(inte); 

     } 
    }); 
}} 

Вот второй Activity, который я пытался получить Spinners информации. Я не знаю, где я написал код неправильно. пожалуйста

активность 2

public class Finalorder extends MainActivity { 

Bundle Bundle; 
TextView txt; 
Button btn; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.last); 

    Bundle=getIntent().getExtras(); 
    SpinnersData data = (SpinnersData) getIntent().getExtras().getSerializable("SPINNERVAL"); 

     }} 
+0

В чем проблема? – Blundell

+0

случайное догадаться: make 'SpinnersData' class' static' – Blundell

+0

Я попробовал из приложения синих штабелеров. его не открывается в этом. Я не знаю, что такое ошибка в моем коде – sudheir

ответ

1

Вы можете реализовать адаптер, который расширяет ArrayAdapter для Spinner и извлекать данные из этого адаптера, например.

 public void onItemSelected(AdapterView<?> parent, View view, 
      int pos, long id) { 
       String obj= myAdapter.getItem(pos);     
         data.setSpinner1(obj.get()); 

    } 

объявляя адаптер

ArrayList<String> list = new ArrayList<String>(); 
      list.add("1.Position ONE"); 
      list.add("2.Position TWO"); 
      list.add("3.Position THREE"); 
private MyAdapter myAdapter=new MyAdapter(getActivity(), 
           android.R.layout.simple_spinner_item,list); 
      spinner1.setAdapter(myAdapter); 
+0

Что это связано с передачей данных между действиями? –

+0

data.setSpinner1 (spin1.getSelectedItem(). ToString()); // это неправильно вот почему он ничего не получает. –

+0

В самом себе, по крайней мере, .getSelectedItem(). ToString() - правильный вызов для извлечения значения строки выбранного элемента из счетчика. Так что сам вызов не является причиной того, что судеир ничего не получает. –

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