当我单击“翻译”按钮时,“应用名称”将继续停止。

时间:2018-09-26 10:50:47

标签: android crash android-edittext textview translate

因此,我尝试使用EditText获取用户输入,并在单击“翻译”按钮后将文本显示在TextView中。下面是我的包含源代码的类。请帮忙!在提取要使用Google Cloud API进行翻译的输入之前,我需要能够成功从用户中提取输入,这就是为什么我现在仅尝试通过TextView提取和显示输入,但似乎无法正常工作的原因现在...

let activityType = PageID.page1.rawValue
    lazy var activity: NSUserActivity = {
        let userActivity = NSUserActivity(activityType: activityType)
        userActivity.title = "View Page"
        userActivity.suggestedInvocationPhrase = "Page one"
        userActivity.isEligibleForSearch = true
        userActivity.isEligibleForPrediction = true
        userActivity.persistentIdentifier =  NSUserActivityPersistentIdentifier(activityType)
        return userActivity
    }()

2 个答案:

答案 0 :(得分:0)

当您尝试调用其EditText方法时,堆栈跟踪指示您的nullgetText()

在事件处理程序中,您调用:

texttotranslate = (EditText) v.findViewById(R.id.translatetextinput);

在这种情况下,v是触发click事件(也称为按钮)的视图。您正在尝试内部找到一个具有ID translatetextinput的按钮。

您可能想写:

texttotranslate = (EditText) getView().findViewById(R.id.translatetextinput);

它将在整个片段的视图层次结构中寻找视图。

答案 1 :(得分:0)

替换这些:

 textView = (TextView) getView().findViewById(R.id.translatedtext);
            texttotranslate = (EditText) v.findViewById(R.id.translatetextinput);

具有:

 textView = (TextView) view.findViewById(R.id.translatedtext);
            texttotranslate = (EditText) view.findViewById(R.id.translatetextinput);