2015-09-18 3 views
0

привет, я изучаю Android Spinner..in Мой учебник У меня есть две страны и город прядильщика, основанные на выборе страны. Город изменит свою работу, но когда я смогу пройти Выбранная страна и город к новой деятельности я получил ошибки Пожалуйста, помогите мнеКак передать выбранные предметы в новую активность

+0

Какая у вас ошибка? – Distwo

+0

После выбора названия страны и города, когда я нажимаю кнопку «К сожалению, приложение было остановлено @Distwo – Karthick

+0

Вам нужно получить трассировку стека от logcat. Это, скорее всего, скажет вам, что не так с вашим кодом. – Distwo

ответ

0

Вы должны использовать пакет для отправки нескольких данных на другой вид деятельности, а intent.putExtra()

Ex: -

// In your First Activity 

public void send() { 


    Intent intent= new Intent(this,Display_Spinner.class); 

    Bundle bundle = new Bundle(); 

    bundle.putString("COUNTRY", str_country); 
    bundle.putString("CITY",str_city); 

    intent.putExtras(bundle); 

    startActivity(intent); 

} 

// In your second Activity 

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

    // In your second Activity fetch data like this 

    Bundle bundle = getIntent().getExtras(); 

    country= (TextView)findViewById(R.id.textView3); 
    city=(TextView)findViewById(R.id.textView5); 


    String Counrty_name=bundle.getString("COUNTRY"); 
    String City_name=bundle.getString("CITY"); 

    country.setText(Counrty_name); 
    city.setText(City_name); 


} 

} 

Обновление 3:

В OnCreate использовании вашей первой активностью в этом коде

country.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
       str_country=country.getSelectedItem().toString(); 

       if (position == 0) { 
        adapter = ArrayAdapter.createFromResource(this, R.array.city_select, android.R.layout.simple_spinner_item); 
        sp2.setAdapter(adapter); 

       } 
       if (position == 1) { 
        adapter = ArrayAdapter.createFromResource(this, R.array.city_india, android.R.layout.simple_spinner_item); 
        sp2.setAdapter(adapter); 
       } 
       if (position == 2) { 
        adapter = ArrayAdapter.createFromResource(this, R.array.city_pakisthan, android.R.layout.simple_spinner_item); 
        sp2.setAdapter(adapter); 
       } 
       if (position == 3) { 
        adapter = ArrayAdapter.createFromResource(this, R.array.city_srilanka, android.R.layout.simple_spinner_item); 
        sp2.setAdapter(adapter); 
       } 

      } 


      @Override 
      public void onNothingSelected(AdapterView<?> parent) { 

      } 
     }); 

     city.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
       str_city=city.getSelectedItem().toString(); 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> parent) { 

      } 
     }); 
+0

может показать мне, как pass plz? – Karthick

+0

Я добавил пример, но вам нужно изменить много вещей, прежде всего получить данные из spinner в методе OnItemSelected. –

+0

спасибо ji..the ошибка в том, что я передаю имя макета Firstactivity во второйActivy, что является причиной для моего приложения Crash :) Спасибо ji ур Код также работает Хорошо :) – Karthick

0

Попробуйте, что в вашей второй активности.

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


    country= (TextView)findViewById(R.id.textView3); 
    city=(TextView)findViewById(R.id.textView5); 

    Bundle extras = getIntent().getExtras(); 
    if (extras != null) { 
     String Counrty_name = extras.getString("Country"); 
     String City_name = extras.getString("City"); 

     country.setText(Counrty_name); 
     city.setText(City_name); 

    }  
} 
+0

спасибо ji .. ошибка заключается в том, что я передаю имя макета Firstactivity во второйActivy, что причина моего приложения Crash :) Спасибо ji ur Код также работает Хорошо :) @Distwo – Karthick

0

Кажется, что код верный, но только один тестовый пример отсутствует. Когда пользователь выбирает какую-либо страну, вы устанавливаете свой адаптер для города, также убедитесь, что вы выбрали значение по умолчанию для города. Поскольку для города не выбрано значение, когда вы нажимаете кнопку, приложение вылетает из-за того, что toString() вызывает нулевую ссылку в строке String city=sp2.getSelectedItem().toString(). Здесь вы можете сделать следующее:

public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
    if (position==0){ 
     adapter= ArrayAdapter.createFromResource(this,R.array.city_select,android.R.layout.simple_spinner_item); 
     sp2.setAdapter(adapter); 
    } 
    if (position==1){ 
     adapter= ArrayAdapter.createFromResource(this,R.array.city_india,android.R.layout.simple_spinner_item); 
     sp2.setAdapter(adapter); 
    } 
    if (position==2){ 
     adapter= ArrayAdapter.createFromResource(this,R.array.city_pakisthan,android.R.layout.simple_spinner_item); 
     sp2.setAdapter(adapter); 
    } 
    if (position==3){ 
     adapter= ArrayAdapter.createFromResource(this,R.array.city_srilanka,android.R.layout.simple_spinner_item); 
     sp2.setAdapter(adapter); 
    } 
    //write this: 
    sp2.setSelection(0);//by default first city is selected 
} 
+0

спасибо ji..и ошибка в том, что я передаю имя макета Firstactivity во второйActivy, что является причиной моего приложения Crash :) Спасибо ji ur Code также работает Хорошо :) – Karthick

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