Android 自定义旋转器崩溃

Android 自定义旋转器崩溃,android,sqlite,spinner,Android,Sqlite,Spinner,大约一周前,我在这里问了一个关于定制微调器的问题,并被引导到本指南 我遵循它,并尝试将它调整为与我的代码一起工作,并将结果从数据库拉到微调器上,但它不断崩溃 这是微调器的代码 public class EditTeam extends Activity { private final List<SpinnerEntry> spinnerContent = new LinkedList<SpinnerEntry>(); private Spinner D1Spinner;

大约一周前,我在这里问了一个关于定制微调器的问题,并被引导到本指南

我遵循它,并尝试将它调整为与我的代码一起工作,并将结果从数据库拉到微调器上,但它不断崩溃

这是微调器的代码

public class EditTeam extends Activity {
private final List<SpinnerEntry> spinnerContent = new LinkedList<SpinnerEntry>();
private Spinner D1Spinner;
private final ETSpinnerAdapter D1Adapter = new ETSpinnerAdapter(spinnerContent, this);
DataBaseHelper myDbHelper = new DataBaseHelper(this);

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.editteam);

    myDbHelper = new DataBaseHelper(this);
    myDbHelper.openDataBase();
    fillSpinner();

}

private void fillSpinner() {
    Cursor c = myDbHelper.FetchDrivers();
    startManagingCursor(c);

    // create an array to specify which fields we want to display
    String[] from = new String[]{"FirstName", "LastName"};
    // create an array of the display item we want to bind our data to
    int[] to = new int[]{android.R.id.text1};


    spinnerContent.add(new SpinnerEntry(1, null, "Test"));



    //adapter.setDropDownViewResource( R.layout.spinner_entry_with_icon );

    D1Spinner = (Spinner) findViewById(R.id.spr_Driver1);
    D1Spinner.setAdapter((SpinnerAdapter) D1Adapter);
}
公共类EditTeam扩展活动{
private final List spinnerContent=new LinkedList();
私人纺纱机;
专用最终ETSpinnerAdapter D1Adapter=新ETSpinnerAdapter(喷丝头内容,本);
DataBaseHelper myDbHelper=新的DataBaseHelper(此);
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.editteam);
myDbHelper=新的DataBaseHelper(此);
myDbHelper.openDataBase();
fillSpinner();
}
私有空填充微调器(){
游标c=myDbHelper.FetchDrivers();
开始管理光标(c);
//创建一个数组以指定要显示的字段
String[]from=新字符串[]{“FirstName”,“LastName”};
//创建要将数据绑定到的显示项的数组
int[]to=newint[]{android.R.id.text1};
添加(新喷丝头条目(1,空,“测试”);
//adapter.setDropDownViewResource(R.layout.spinner\u条目\u,带有\u图标);
D1Spinner=(Spinner)findViewById(R.id.spr_Driver1);
D1Spinner.setAdapter((SpinnerAdapter)D1Adapter);
}
}

我使用的是contacts示例中的两个类,它们目前未修改

正如您所看到的,我试图在此时手动添加一个项目,但当您加载它时,它会崩溃

这似乎是突破点

05-25 15:17:34.773:E/AndroidRuntime(241):java.lang.RuntimeException:无法启动活动组件信息{com.f1manager.android/com.f1manager.android.EditTeam}:java.lang.ClassCastException:com.f1manager.android.etSpinGeneraAdapter

任何想法都很好

谢谢

ETSpinGeneraAdapter代码(未修改示例中的原始代码):

公共类ETSpinnerAdapter{
私人最终清单内容;
私人最终活动;
公共ETSpinnerAdapter(列表内容、活动){
超级();
this.content=内容;
这个。活动=活动;
}
public int getCount(){
返回content.size();
}
公共喷丝头入口getItem(内部位置){
返回内容。获取(位置);
}
公共长getItemId(int位置){
返回位置;
}
公共视图getView(int位置、视图转换视图、视图组父视图){
最终LayoutFlater充气器=活动。GetLayoutFlater();
最终视图喷丝头入口=充气机。充气(
R.layout.spinner_entry_(带有图标,null);//从xml初始化布局
最终文本视图联系人姓名=(文本视图)喷丝头条目
.findViewById(R.id.spinnerEntryContactName);
最终ImageView contactImage=(ImageView)喷丝头条目
.findViewById(R.id.喷丝头联系人照片);
最终喷丝头入口currentEntry=content.get(位置);
contactName.setText(currentEntry.getContactName());
//setImageBitmap(currentEntry.getContactPhoto());
返回喷丝头入口;
}

}你的ETSpinnerAdapter似乎不是一个SpinnerAdapter,因为你得到了一个职业演员阵容例外。也许你可以发布ETSpinnerAdapter的代码?

在这里添加完整的logcat和布局文件我想问题在这里:
dSpinner.setAdapter((SpinnerAdapter)D1Adapter)
因为当某些转换失败时会出现日志错误。如果我像指南上那样做,我会得到这个错误:方法setAdapter(SpinnerAdapter)在类型AbsSpinner不适用于参数(ETSpinnerAdapter)中,如果我拿走了(SpinnerAdapter),感谢您的回复,我已经用ETSpinnerAdapter代码更新了原始代码,该代码未从contacts示例中修改。
public class ETSpinnerAdapter {
private final List<SpinnerEntry> content;
private final Activity activity;

public ETSpinnerAdapter(List<SpinnerEntry> content, Activity activity) {
super();
this.content = content;
this.activity = activity;
}

public int getCount() {
return content.size();
}

public SpinnerEntry getItem(int position) {
return content.get(position);
}

public long getItemId(int position) {
return position;
}

public View getView(int position, View convertView, ViewGroup parent) {
final LayoutInflater inflater = activity.getLayoutInflater();
final View spinnerEntry = inflater.inflate(
R.layout.spinner_entry_with_icon, null);    // initialize the layout from xml
final TextView contactName = (TextView) spinnerEntry
        .findViewById(R.id.spinnerEntryContactName);
final ImageView contactImage = (ImageView) spinnerEntry
.findViewById(R.id.spinnerEntryContactPhoto);
final SpinnerEntry currentEntry = content.get(position);
contactName.setText(currentEntry.getContactName());
//contactImage.setImageBitmap(currentEntry.getContactPhoto());
return spinnerEntry;
}