2010-09-03 46 views
0

因此,我开始申请,首先要做的是在选择城市时对城市进行描述。我可以显示描述,但它会在同一时间对所有城市进行描述,当我选择另一个城市时它不会显示:它会添加更多。我的Spinner有一些问题

这是我的代码:

公共类主要活动扩展实现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 2010-09-03 16:47:23

+0

好的,谢谢你,这是失踪的休息。谢谢 ;) – Tsunaze 2010-09-03 16:52:26

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; 
}