我需要做一件非常简单的事情,但我一直都会遇到错误。我有多个开关,每个开关都有一个不同的ID。每次我使用(Switch)findViewById(),它都会给我以下错误:无法将视图转换为Switch。 s被定义为Switch。 我做了一些研究,我试图清理我的项目并删除我的R文件,但它仍然无法正常工作。
protected void onCreate(Bundle savedInstanceState) {
...
switches = weekprogram.getSwitches(day); //returns an arraylist with switches
for (int j = 0; j < switches.size(); j++) {
switch (j) {
case 5:
b = (Button) findViewById(R.id.timeBOne);
s = (Switch) findViewById(R.id.switchOne);
break;
case 6:
b = (Button) findViewById(R.id.timeBTwo);
s = (Switch) findViewById(R.id.switchTwo);
break;
case 7:
b = (Button) findViewById(R.id.timeBThree);
s = (Switch) findViewById(R.id.switchThree);
break;
case 8:
b = (Button) findViewById(R.id.timeBFour);
s = (Switch) findViewById(R.id.switchFour);
break;
case 9:
b = (Button) findViewById(R.id.timeBFive);
s = (Switch) findViewById(R.id.switchFive);
break;
case 0:
b = (Button) findViewById(R.id.timeBSix);
s = (Switch) findViewById(R.id.switchSix);
break;
case 1:
b = (Button) findViewById(R.id.timeBseven);
s = (Switch) findViewById(R.id.switchSeven);
break;
case 2:
b = (Button) findViewById(R.id.timeBEight);
s = (Switch) findViewById(R.id.switchEight);
break;
case 3:
b = (Button) findViewById(R.id.timeBNine);
s = (Switch) findViewById(R.id.switchNine);
break;
case 4:
b = (Button) findViewById(R.id.timeBTen);
s = (Switch) findViewById(R.id.switchTen);
break;
}
...
}
XML文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/backgroundforapp"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.hti_thermostat.SelectedDay$PlaceholderFragment" >
<Button
android:id="@+id/timeBNine"
style="?android:attr/buttonStyleSmall"
android:layout_width="100dp"
android:layout_height="30dp"
android:layout_above="@+id/timeBTen"
android:layout_alignLeft="@+id/timeBTen"
android:text="09:30 AM"
android:textSize="13sp"
android:onClick="setTimeButton" />
<Button
android:id="@+id/timeBEight"
style="?android:attr/buttonStyleSmall"
android:layout_width="100dp"
android:layout_height="30dp"
android:layout_above="@+id/timeBNine"
android:layout_alignLeft="@+id/timeBFive"
android:text="08:30 AM"
android:textSize="13sp"
android:onClick="setTimeButton"/>
<Button
android:id="@+id/timeBseven"
style="?android:attr/buttonStyleSmall"
android:layout_width="100dp"
android:layout_height="30dp"
android:layout_above="@+id/timeBEight"
android:layout_alignLeft="@+id/timeBEight"
android:text="07:30 AM"
android:textSize="13sp"
android:onClick="setTimeButton" />
<Button
android:id="@+id/timeBSix"
style="?android:attr/buttonStyleSmall"
android:layout_width="100dp"
android:layout_height="30dp"
android:layout_above="@+id/timeBseven"
android:layout_alignLeft="@+id/timeBseven"
android:text="06:30 AM"
android:textSize="13sp"
android:onClick="setTimeButton" />
<Button
android:id="@+id/timeBTen"
style="?android:attr/buttonStyleSmall"
android:layout_width="100dp"
android:layout_height="30dp"
android:layout_alignLeft="@+id/timeBEight"
android:layout_alignParentBottom="true"
android:layout_marginBottom="26dp"
android:text="10:30 AM"
android:textSize="13sp"
android:onClick="setTimeButton" />
<Button
android:id="@+id/timeBFive"
style="?android:attr/buttonStyleSmall"
android:layout_width="100dp"
android:layout_height="30dp"
android:layout_alignLeft="@+id/timeBFour"
android:layout_centerVertical="true"
android:text="05:30 AM"
android:textSize="13sp"
android:onClick="setTimeButton" />
<Button
android:id="@+id/timeBFour"
style="?android:attr/buttonStyleSmall"
android:layout_width="100dp"
android:layout_height="30dp"
android:layout_above="@+id/timeBFive"
android:layout_alignLeft="@+id/timeBThree"
android:text="04:30 AM"
android:textSize="13sp"
android:onClick="setTimeButton" />
<Button
android:id="@+id/timeBThree"
style="?android:attr/buttonStyleSmall"
android:layout_width="100dp"
android:layout_height="30dp"
android:layout_above="@+id/timeBFour"
android:layout_alignLeft="@+id/DayofWeek"
android:text="03:30 AM"
android:textSize="13sp"
android:onClick="setTimeButton" />
<Button
android:id="@+id/timeBTwo"
style="?android:attr/buttonStyleSmall"
android:layout_width="100dp"
android:layout_height="30dp"
android:layout_above="@+id/timeBThree"
android:layout_alignLeft="@+id/timeBThree"
android:text="02:30 AM"
android:textSize="13sp"
android:onClick="setTimeButton" />
<Button
android:id="@+id/timeBOne"
style="?android:attr/buttonStyleSmall"
android:layout_width="100dp"
android:layout_height="30dp"
android:layout_above="@+id/timeBTwo"
android:layout_alignLeft="@+id/DayofWeek"
android:text="01:30 AM"
android:textSize="13sp"
android:onClick="setTimeButton"/>
<TextView
android:id="@+id/DayofWeek"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/timeBOne"
android:layout_centerHorizontal="true"
android:layout_marginBottom="15dp"
android:text="Monday"
android:textColor="#ECDFD5"
android:textSize="35sp" />
<ImageView
android:id="@+id/sunsD"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignTop="@+id/timeBOne"
android:src="@drawable/sunshine" />
<ImageView
android:id="@+id/moonsD"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/sunsD"
android:layout_alignTop="@+id/timeBSix"
android:src="@drawable/moon" />
<Switch
android:id="@+id/switchOne"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/timeBOne" />
<Switch
android:id="@+id/switchTwo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/switchOne"
android:layout_alignTop="@+id/timeBTwo" />
<Switch
android:id="@+id/switchThree"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/timeBThree"
android:layout_alignLeft="@+id/switchTwo" />
<Switch
android:id="@+id/switchFour"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/switchThree"
android:layout_below="@+id/timeBThree" />
<Switch
android:id="@+id/switchSix"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/switchFive"
android:layout_alignTop="@+id/timeBSix" />
<Switch
android:id="@+id/switchSeven"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/switchSix"
android:layout_below="@+id/timeBSix" />
<Switch
android:id="@+id/switchEight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/timeBEight"
android:layout_alignLeft="@+id/switchSeven" />
<Switch
android:id="@+id/switchNine"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/timeBNine"
android:layout_alignLeft="@+id/switchEight" />
<Switch
android:id="@+id/switchTen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/timeBTen"
android:layout_alignLeft="@+id/switchNine" />
<Switch
android:id="@+id/switchFive"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/timeBFive"
android:layout_alignLeft="@+id/switchFour" />
答案 0 :(得分:0)
您的项目中有另一个Switch
类,代码使用的是android.widget.Switch
。
如果其他Switch
位于另一个包中,只需将导入更改为import android.widget.Switch
。
如果它位于同一个包中,您可以通过在代码中将Switch
替换为android.widget.Switch
来明确引用平台类。