2016-11-14 51 views
0

在這裏遇到一些麻煩,希望有人可以提供幫助。我有一個下拉菜單,我可以從字段中獲取數據,只有當保存功能關閉時,纔會保存,信息爲空。我試圖設置它的功能返回字符串,只有我採取int來顯示選擇號碼,所以它不兼容。有什麼想法嗎?是的,字符串是公開的。在Unity3d中將下拉菜單保存到SQLite數據庫

public string GetDropSelection(int index) 
{ 
    Debug.Log(index); 
    switch (index) 
    { 
     case 1: BrakeWheelField="Front"; 
     break; 

     case 2: BrakeWheelField="Rear"; 
     break; 

     case 3: BrakeWheelField="Both"; 
     break; 
    } 
    return BrakeWheelField; //I know this technique doesn't work because what is coming in is not what's going out. 
    Debug.Log("What is the selection?" + BrakeWheelField); //Variable has the value here. 
} 

public void GetBrakeData(string BrakeWheelField) 
{ 
    Debug.Log(BrakeWheelField); //By the time it gets to here, it's blank. 

    BrakeDateofPurchaseField=BrakeDateofPurchaseText.text; 
    BrakeMileageField=BrakeMileageText.text; 
    BrakeLocationField=BrakeLocationText.text; 
    BrakeLaborField=BrakeLaborText.text; 
    BrakeBrandField= BrakeBrandText.text; 
    BrakePriceField= BrakePriceText.text; 
    BrakeNotesField = BrakeNotesText.text; 

    DatabaseManager.Instance.SQLiteInit(); 
    DatabaseManager.Instance.SaveBrakeInfo(BrakeDateofPurchaseField, BrakeMileageField, BrakeLocationField, BrakeLaborField, BrakeBrandField, BrakePriceField, BrakeWheelField, BrakeNotesField); 

} 

在此先感謝!

+0

您可以創建一個單元測試你的方法,來驗證,如果你給他們,他們返回預期的答案正確的價值觀,和他們做如果給予無效的輸入內容。查找「統一單元測試」以獲取更多信息。 –

+0

當我們沒有看到更多可能導致錯誤的東西時,真的很難爲您調試您的代碼。 IE瀏覽器我們沒有看到如何調用GroupDropSelection,以及接收返回的字符串的內容。 'GroupDropSelection'和'GetBrakeData'之間發生什麼 –

回答

0

添加到您的switch語句a default以查看您是否獲得除1,2或3之外的索引 - 如此。

switch (index) 
{ 
    case 1: BrakeWheelField="Front"; 
    break; 

    case 2: BrakeWheelField="Rear"; 
    break; 

    case 3: BrakeWheelField="Both"; 
    break; 

    default: 
      Debug.Log("GroupDropSelection invalid index: "+index); 
    break; 
} 

或者將默認值添加到您的其他案例之一,如果您希望它默認爲該答案。如

switch (index) 
{ 
    default: // Make "Front" the default for other cases than 1,2or3 
    case 1: BrakeWheelField="Front"; 
    break; 

    case 2: BrakeWheelField="Rear"; 
    break; 

    case 3: BrakeWheelField="Both"; 
    break; 
} 

單獨的答案,但我會保持它在同一篇文章中。

GetBrakeDataBrakeWheelField是不是你的全局變量,但是在參數傳遞給GetBrakeData局部變量。如果你給GetBrakeData一個空值,那麼方法中的BrakeWheelField也是如此。在Debug.Log中,如果您在BrakeWheelData之前與this.一起獲得全局值。見我的編輯:

public void GetBrakeData(string BrakeWheelField) 
{ 
    Debug.Log(BrakeWheelField); // GetBrakeData's local BrakeWheelField 
    Debug.Log(this.BrakeWheelField); // the global value for BrakeWheelField 

    BrakeDateofPurchaseField=BrakeDateofPurchaseText.text; 
    BrakeMileageField=BrakeMileageText.text; 
    BrakeLocationField=BrakeLocationText.text; 
    BrakeLaborField=BrakeLaborText.text; 
    BrakeBrandField= BrakeBrandText.text; 
    BrakePriceField= BrakePriceText.text; 
    BrakeNotesField = BrakeNotesText.text; 

    DatabaseManager.Instance.SQLiteInit(); 
    DatabaseManager.Instance.SaveBrakeInfo(BrakeDateofPurchaseField, BrakeMileageField, BrakeLocationField, BrakeLaborField, BrakeBrandField, BrakePriceField, BrakeWheelField, BrakeNotesField); 

} 
+0

謝謝Chuck!我認爲我必須在單身人士身上做類似的事情。目前,這不是保存,而是通過GetBrakeData函數實現的。 –

+1

查克,你是對的!當我插入數據庫以及單例時,我不得不添加一個this.BrakeWheelField。然後它工作! –

相關問題