【问题标题】:HTML form Input with Phonegap Android development in Eclipse在 Eclipse 中使用 Phonegap Android 开发的 HTML 表单输入
【发布时间】:2012-09-11 13:57:39
【问题描述】:

我有一个奇怪的问题。我最近使用 Phonegap 和 Xcode 为 ios 开发了一个应用程序。进展顺利,他们在 App Store 中,一切正常。其中一个元素是一个简单的电子邮件表单,用 HTML 编写。它看起来像这样:

<form name="emailformbtn" id="emailformbtn" onsubmit="submitHandler(e);" action="#emailfromBtn">
                    To: <input type="email" name="emailvarto"/>
                    Message:<textarea cols="40" rows="8" id="emailmessagebtn" name="emailmessage">Email Message</textarea>
                    <input type="button" value="send" onsubmit="submitHandler(e);" onclick="emailProcessfromBtn();"/>
                </form>

使用 Phonegap 和 Jquery mobile 在 ios 中工作。所以我决定将应用程序转换为Android。将所有 ObjectiveC 转换为 Java,其余的应该可以工作,因为它们都是 Phonegap/Cordova。

我正在使用 Cordova 2.0 和 Android 4.1

很多,但是当我尝试触摸电子邮件字段的输入时,它什么也没做,Eclipse 显示消息:

The View is not attached to a window. 

它是一个 Phonegap/Cordova 元素。我什至不确定它想说什么。 Android 和 Jquery mobile 是否存在问题,或者在 Android 中使用 phonegap 触摸输入字段不会调用本机键盘?

任何有关此问题的指导或建议将不胜感激。

为了让事情更清楚,即使我完全按照 Phonegap 的配置指南进行操作,以下是 Activity.java 文件的内容:

package uk.co.testdevelopment.testapp.droidapp;

import android.os.Bundle;
import android.view.Menu;
import org.apache.cordova.*;

public class MainActivity extends DroidGap {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    super.loadUrl("file:///android_asset/www/index.html");
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}
}

【问题讨论】:

    标签: android eclipse cordova jquery-mobile cordova-2.0.0


    【解决方案1】:

    您确定您的活动是在扩展'DroidGap' 而不是'Activity'?这听起来很奇怪,看起来更像是科尔多瓦配置的问题,而不是与您的 html 相关的问题

    【讨论】:

    • 是的,我正在扩展 DroidGap,而不是 Activity。我严格按照 Phonegap 配置指南进行操作。在其中它告诉我以这种方式编辑活动页面。
    • 公共类 MainActivity 扩展 DroidGap {
    • 嗯,这让事情变得复杂了。将视图附加到应用程序发生在 setContentView 中,需要用某种 loadUrl 调用替换。如果它们是正确的,那么接下来就是确保清单和cordova xml 文件是正确的。
    • 我已将我的活动文件的全部内容包含在原始问题中,不能免于错误,但我认为它是正确的,并且大部分应用程序都可以正常工作。我会检查我的 xml 文件。
    • 要验证的另一件重要事情是确保清单中的活动标签已按照文档中的规定使用 android:configChanges="orientation|keyboardHidden.... 进行更新
    【解决方案2】:

    问题似乎出在您指定调用 inflate 的菜单上。对于 ICS 及更高版本,菜单是在应用程序首次运行时创建的,而不是在访问菜单时创建的。我建议删除您的菜单代码以消除查看错误。

    顺便说一句:视图必须附加到 Android 视图的根元素,这通常由 DroidGap 处理。 DroidGap 也有菜单处理程序,您可能想看看使用菜单插件或使用 CordovaWebView 方法来开发适用于 Android 4.x 的混合应用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-01
      相关资源
      最近更新 更多