2012-05-25 67 views
0

我在這裏問了一個關於一個星期左右的問題,關於一個自定義微調框,並引導到本指南。 http://app-solut.com/blog/2011/03/using-custom-layouts-for-spinner-or-listview-entries-in-android/自定義微調框崩潰

我跟着它,我試着適應它與我的代碼一起工作,並將數據庫中的結果拖到微調器上,但它不斷崩潰。

這是微調的代碼。此刻

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

}

,我使用從接觸例如兩個班這是未修正。

正如你所看到的,我正試圖手動添加一個項目,但它只是在你加載時崩潰。

這似乎是突破點?

05-25 15:17:34.773: E/AndroidRuntime(241): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.f1manager.android/com.f1manager.android.EditTeam}: java.lang.ClassCastException: com.f1manager.android.ETSpinnerAdapter

任何想法都會很棒。

謝謝。

ETSpinnerAdapter代碼(在例子中的原代碼被修改):

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

}

+0

在這裏添加完整的logcat和佈局文件 –

+0

我認爲問題在這裏:'D1Spinner.setAdapter((SpinnerAdapter)D1Adapter)'當某些施法失敗時,會引發錯誤。 – Sajmon

+0

如果我這樣做是因爲它是在指南中我得到這個錯誤:類型AbsSpinner中的方法setAdapter(SpinnerAdapter)不適用於參數(ETSpinnerAdapter)如果我帶走(SpinnerAdapter) –

回答

0

這似乎像你ETSpinnerAdapter並不像你得到一個類轉換exceptin一個SpinnerAdapter。也許你可以發佈ETSpinnerAdapter的代碼?

+0

感謝您的答覆,我已經使用ETSpinnerAdapter代碼更新了原始內容,該代碼未在聯繫人示例中修改。 –