所以我正在启动一个应用程序,首先要做的是在选择城市时对城市进行描述。我可以显示描述,但它会同时描述所有城市,当我选择另一个城市时它不会出现:它会增加越来越多。
这是我的代码:
公共类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) {
}
谢谢。
答案 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;
}