2010-09-03 3 views
0

Так что я запускаю приложение, и первое, что нужно сделать, это сделать описание города, когда город выбран. Я могу показать описание, но он делает описание всех городов в одно и то же время, и он не появляется, когда я выбираю другой город: он добавляет все больше и больше.У меня проблемы с моим счетчиком

это мой код:

общественный класс Main расширяет активность реализует OnItemClickListener, OnItemSelectedListener {

TextView description; 
Spinner spin; 
ArrayAdapter adapter_city; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 


    description = (TextView)findViewById(R.id.description); 

    spin = (Spinner)findViewById(R.id.spin); 

    adapter_city = ArrayAdapter.createFromResource(this, R.array.Cities, android.R.layout.simple_spinner_item); 
    adapter_city.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spin.setAdapter(adapter_city); 
    spin.setOnItemSelectedListener(this); 
} 
@Override 
public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 


} 
@Override 
public void onItemSelected(AdapterView<?> parent, View v, int position, 
     long id) { 
    switch(position){ 

    case 0 : description.append(getString(R.string.Paris)); 

    case 1 : description.append(getString(R.string.Chicago)); 

    case 2 : description.append(getString(R.string.NewYork)); 
    } 




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

} 

спасибо.

ответ

0

Вместо:

description.append(getString(R.string.Paris)); 

Почему вы не просто использовать:

description.setText(R.string.Paris); 

Вот что он должен выглядеть следующим образом:

case 0 : description.setText(R.string.Paris); 
      break; 

case 1 : description.setText(R.string.Chicago); 
      break; 

case 2 : description.setText(R.string.NewYork); 
      break; 
+0

Я не знаю, почему, но когда я делаю это, есть одна строка для города в textView descrption, но это всего лишь одно, и оно работает со всем выбранным мной элементом. :/ – Tsunaze

+0

Хорошо, спасибо, что это был прорыв, который отсутствовал. Спасибо ;) – Tsunaze

0

Попробуйте использовать description.setText(CharSequence text) вместо добавления. Добавить для добавления текста.

0

Вам нужно добавить break сек после того, как каждый случай или исполнение будут продолжены для всех из них при согласовании:

switch(position){ 

case 0 : description.setText(R.string.Paris); break; 

case 1 : description.setText(R.string.Chicago); break; 

case 2 : description.setText(R.string.NewYork); break; 
} 
Смежные вопросы