使用android 写一个Spinner 的demo 就报异常了。没查出来。
09-23 03:08:00.582: ERROR/AndroidRuntime(265): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.hkrt.action/com.hkrt.action.LessonActivity}: java.lang.ClassCastException: android.widget.TextView09-23 03:08:00.582: ERROR/AndroidRuntime(265): Caused by: java.lang.ClassCastException: android.widget.TextView
这是主要的异常。但我们没有类型转换啊。
代码如下:public class LessonActivity extends Activity {
@SuppressWarnings("unchecked")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Spinner spinner = (Spinner)findViewById(R.id.spinner);
//准备一个数组适配器
ArrayAdapter adapter = ArrayAdapter.createFromResource(
this, R.string.colors, android.R.layout.simple_spinner_item);
//设置下拉样式
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//为下拉列表设置适配器
spinner.setAdapter(adapter);
//定义子元素选择监听器
OnItemSelectedListener oisl= new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View arg1,
int position, long arg3) {
Toast.makeText(LessonActivity.this,"选择的色彩: " +parent.getItemAtPosition(position).toString(), Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
};
//为下拉列表绑定事件监听器
spinner.setOnItemSelectedListener(oisl);
}
}
string.xml<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Lesson2</string>
<string name="color">选择色彩:</string>
<string name="colors" >
<item>黑色 | Black</item>
<item>蓝色 | Blue</item>
<item>棕色 | Brown</item>
<item>绿色 | Green</item>
<item>灰色 | Grey</item>
<item>粉色 | Pink</item>
<item>紫色 | Purple</item>
<item>红色 | Red</item>
<item>白色 | White</item>
<item>黄色 | Yellow</item>
</string>
</resources>
09-23 03:08:00.582: ERROR/AndroidRuntime(265): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.hkrt.action/com.hkrt.action.LessonActivity}: java.lang.ClassCastException: android.widget.TextView09-23 03:08:00.582: ERROR/AndroidRuntime(265): Caused by: java.lang.ClassCastException: android.widget.TextView
这是主要的异常。但我们没有类型转换啊。
代码如下:public class LessonActivity extends Activity {
@SuppressWarnings("unchecked")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Spinner spinner = (Spinner)findViewById(R.id.spinner);
//准备一个数组适配器
ArrayAdapter adapter = ArrayAdapter.createFromResource(
this, R.string.colors, android.R.layout.simple_spinner_item);
//设置下拉样式
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//为下拉列表设置适配器
spinner.setAdapter(adapter);
//定义子元素选择监听器
OnItemSelectedListener oisl= new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View arg1,
int position, long arg3) {
Toast.makeText(LessonActivity.this,"选择的色彩: " +parent.getItemAtPosition(position).toString(), Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
};
//为下拉列表绑定事件监听器
spinner.setOnItemSelectedListener(oisl);
}
}
string.xml<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Lesson2</string>
<string name="color">选择色彩:</string>
<string name="colors" >
<item>黑色 | Black</item>
<item>蓝色 | Blue</item>
<item>棕色 | Brown</item>
<item>绿色 | Green</item>
<item>灰色 | Grey</item>
<item>粉色 | Pink</item>
<item>紫色 | Purple</item>
<item>红色 | Red</item>
<item>白色 | White</item>
<item>黄色 | Yellow</item>
</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="colors">
<item>黑色 | Black</item>
<item>蓝色 | Blue</item>
<item>棕色 | Brown</item>
<item>绿色 | Green</item>
<item>灰色 | Grey</item>
<item>粉色 | Pink</item>
<item>紫色 | Purple</item>
<item>红色 | Red</item>
<item>白色 | White</item>
<item>黄色 | Yellow</item> </string-array>
</resources>
而相应的
ArrayAdapter adapter = ArrayAdapter.createFromResource(
this, R.array.colors, android.R.layout.simple_spinner_item);
如果你改完还不对的话,把你的main.xml代码贴出来看看。
main.xml 如下<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/color"
>
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/color"
/>
</TextView>
</LinearLayout>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/color"
>
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/color"
/>
</TextView>
这句错了,你怎么把Spinner控件定义到TextView里面去了,改成这样
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/color"
>
</TextView>
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/color"
/>低级错误