2014-10-28 2 views
0

나는 스피너와 버튼이 각각 10 개씩 있습니다. 버튼 활동 A를 클릭하면 다른 활동 B로 이동하고, 해당 버튼을 클릭하여 활동 A에서 활동 B로 보내려면 선택한 정보를 회 전자에서 추가하고 활동 B에 선택한 스피너 정보를 표시하려고합니다.한 액티비티에서 다른 액티비티로 선택한 스피너 정보를 보내고받습니다.

여기에 있습니다 내 코드 (활동 A) :

public class Firstactivity extends MainActivity { 

    private Button btn; 
    private Spinner spin; 

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

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

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

      } 

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

      } 
     }); 


     btn.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
       Intent inte = new Intent (Firstactivity.this, Finalorder.class); 
       String Text = spin.getSelectedItem().toString(); 
       startActivity(inte); 

      } 
     }); 
}} 

활동 B : 당신은 모든 스피너 값으로 사용자 정의 직렬화 또는 parcelable 객체를 생성 할 필요가

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(); 
     btn=(Button)findViewById(R.id.btn1s); 


     Bundle=getIntent().getExtras(); 
     txt.setText(Bundle.getString("SPINNERVAL")); 

    } 
} 

답변

0

. 그리고 그것을 활동을 통해 전송하십시오. 그런

뭔가 : onCreate() 다른 활동에

SpinnersData data = new SpinnersData(); 
data.setSpinner1(spinner1.getSelectedItem().toString()); 
data.setSpinner2(spinner2.getSelectedItem().toString()); 
.... 
yourIntent.putExtra("someKey", data); 

얻을 :

public class SpinnersData implements Serializable 
{ 
    private String spinner1; 
    private String spinner2; 
    //.... 
    private String spinner10; 


    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 getSpinner10() 
    { 
     return spinner10; 
    } 
    public void setSpinner10(String spinner10) 
    { 
     this.spinner10 = spinner10; 
    } 
} 

한 활동에 의도에 넣어

SpinnersData data = (SpinnersData) getIntent().getExtras().getSerializable("someKey"); 

지금 당신이 사용할 수 있습니다 여기에 정보를 표시하는 객체입니다.

+0

여전히 표시되지 않습니다. 빈 레이아웃을 표시합니다. 선택한 스피너 데이터를 가져 오지 못합니다. – sudheir

+0

직렬화 가능 객체를 의도에 넣고 다른 활동에서 가져 오는 코드의 일부를 게시 할 수 있습니까? – Vito

+0

그리고 모든 회 전자에 데이터가 있는지 확인 하시겠습니까? 어쩌면이 "spinner2.getSelectedItem(). toString()"빈 문자열을 반환합니까? – Vito

관련 문제