我的旋转器有一些问题

时间:2010-09-03 16:30:22

标签: android arrays spinner

所以我正在启动一个应用程序,首先要做的是在选择城市时对城市进行描述。我可以显示描述,但它会同时描述所有城市,当我选择另一个城市时它不会出现:它会增加越来越多。

这是我的代码:

公共类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 :(得分:0)

尝试使用description.setText(CharSequence text)而不是追加。附加是用于附加文本。

答案 1 :(得分: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;

答案 2 :(得分: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;
}