gpt4 book ai didi

java - 在 Android 中从 Set 获取对象数组时出现问题

转载 作者:行者123 更新时间:2023-11-29 08:26:03 25 4
gpt4 key购买 nike

你看到这段代码有什么问题吗?函数执行时出现以下错误:java.lang.NullPointerException: Attempt to invoke interface method java.lang.Object[] java.util.Set.toArray() 在空对象引用上。我在 Android 7.0 中运行它。

import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import java.util.Locale;
import java.util.Set;
import java.util.Arrays;
import android.content.Context;


public static String GetLanguages(Object objcon) {
Context context = (Context) objcon;
TextToSpeech tts;

tts = new TextToSpeech(context, new OnInitListener(){
@Override
public void onInit(int status) {

};
});

Set<Locale> loc = tts.getAvailableLanguages();
Object[] objloc = loc.toArray();
return Arrays.toString(objloc);

};

最佳答案

您得到的是 null,因为 TextToSpeech 需要时间来初始化。这就是为什么您必须在初始化期间提供 OnInitListener 的实现。

tts = new TextToSpeech(context, new TextToSpeech.OnInitListener(){
@Override
public void onInit(int status) {
// Now you can use tts
Set<Locale> loc = tts.getAvailableLanguages();
Object[] objloc = loc.toArray();

};
});

该方法需要使用 TextToSpeech 作为类变量,因此您需要某种回调,以从 GetLanguages 方法中获取结果。

关于java - 在 Android 中从 Set<Locale> 获取对象数组时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53028480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com