2015-07-19 78 views
-1

我的項目是在C#中使用xamarin android。我創建了一個構造函數並獲取錯誤:非靜態字段需要一個對象引用,該如何修復該方法?

using System; 
using Android.App; 
using Android.Content; 
using Android.Runtime; 
using Android.Views; 
using Android.Widget; 
using Android.OS; 
using Android.Speech.Tts; 
using System.IO; 
using System.Windows; 
using System.Collections.Generic; 
using System.Linq; 

namespace App5 
{ 
    [Activity(Label = "App5", MainLauncher = true, Icon = "@drawable/icon")] 
    public class MainActivity : Activity 
    { 
     int count = 1; 



     public MainActivity() 
     { 

      var langAvailable = new List<string> { "Default" }; 
      var localesAvailable = Java.Util.Locale.GetAvailableLocales().ToList(); 
      foreach (var locale in localesAvailable) 
      { 
       LanguageAvailableResult res = TextToSpeech.IsLanguageAvailable(locale); 
       switch (res) 
       { 
        case LanguageAvailableResult.Available: 
         langAvailable.Add(locale.DisplayLanguage); 
         break; 
        case LanguageAvailableResult.CountryAvailable: 
         langAvailable.Add(locale.DisplayLanguage); 
         break; 
        case LanguageAvailableResult.CountryVarAvailable: 
         langAvailable.Add(locale.DisplayLanguage); 
         break; 
       } 
      } 
     } 

在此行中:

TextToSpeech.IsLanguageAvailable(locale) 

我發現了錯誤:

錯誤1:一個對象引用是所必需的非靜態字段,方法或屬性Android.Speech.Tts.TextToSpeech.IsLanguageAvailable(Java.Util.Locale)

試圖改變e構造函數是靜態的或變量LanguageAvailableResult是靜態的,但沒有幫助。

回答

0
var tts=new TextToSpeech(); 
LanguageAvailableResult res=tts.IsLanguageAvailable(locale); 
+0

TextToSpeech實例需要獲取參數。至少兩個。上下文和texttospeech.ionlistener。 –

+0

然後你需要提供它們。 –

+0

我試着創建全局TextToSpeech.IOnInitListener監聽;但我不明白我應該分配給什麼。然後在我做的TextToSpeech實例中:new TextToSpeech(ApplicationContext,listen);所以現在我沒有得到錯誤,但沒有分配監聽,所以它是空的。 –

相關問題