у меня есть некоторые проблемы с моим счетчиком - PullRequest
0 голосов
/ 03 сентября 2010

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

это мой код:

открытый класс Main расширяет Activity, реализует 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) {

}

спасибо.

Ответы [ 3 ]

0 голосов
/ 03 сентября 2010

Вместо:

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 голосов
/ 03 сентября 2010

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

    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;
}
0 голосов
/ 03 сентября 2010

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

...