【问题标题】:Android Development -- Input MethodsAndroid开发——输入法
【发布时间】:2012-03-18 03:20:56
【问题描述】:

我刚刚启动并运行了 AVD,并且我得到了一个“HelloWorld”来工作。 现在我认为下一个合乎逻辑的步骤是更熟悉 I/O,所以,我想创建和输入框,并在人完成输入时点击按钮(或某种触发器),然后将其读入,并根据输入输出响应。

我尝试使用Android Developers Resources,它说要创建和输入法,我需要编辑AndroidManifest.xml并将服务添加到其中。所以,我的 xml 现在看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hunter.nance.escapetheroom"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="15" />

<application



    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:name=".AndroidEscapeTheRoomActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <service android:name="FastInputIME"
        android:label="@string/fast_input_label"
        android:permission="android.permission.BIND_INPUT_METHOD">
        <intent-filter>
            <action android:name="android.view.InputMethod" />
        </intent-filter>
        <meta-data android:name="android.view.im" android:resource="@xml/method" />
    </service>

</application>

但是,我的 Eclipse 文件显示错误:

[2012-02-27 11:44:41 - com.android.ide.eclipse.adt.internal.project.AndroidManifestHelper] Unable to read C:\Documents and Settings\java\workspace\AndroidEscapeTheRoom\AndroidManifest.xml: org.eclipse.core.internal.resources.ResourceException: Resource is out of sync with the file system: '/AndroidEscapeTheRoom/AndroidManifest.xml'.
[2012-02-27 11:44:41 - AndroidEscapeTheRoom] AndroidManifest.xml does not declare a Java package: Build aborted.

更不用说,即使在使 XML 工作之后,我也不确定如何在我的实际 Java 代码中使用它。有什么好的教程或任何建议吗?

非常感谢!

【问题讨论】:

  • 尝试在 Eclipse 项目资源管理器中右键单击您的项目并选择“刷新”。这应该再次与文件系统同步。除此之外:听起来你有点混淆了,所以请澄清一下:你想要一个编辑文本(=文本输入字段)和几个按钮加上一个 TextView 来显示一些输出文本?您提到了 InputMethod 服务,这意味着您尝试创建自定义软键盘。这有点高级,所以只是为了确保您知道自己在做什么(并且您可能会走错方向)。
  • 谢谢,我会澄清一下:我希望有一个输入框,用户可以在其中点击它,然后出现一个可以用来输入的键盘。然后,我希望有一个用户在完成键入时按下的按钮,并且在该事件中,Java 代码将检查它是否与预设的可能性相匹配,如果匹配,那么......最终文本框将根据输入显示文本。谢谢。
  • 是的,那你走错路了。您要查找的类是 EditText(=输入字段)、ButtonTextView(=文本标签)。开发网站上有一些小教程,您可以查看以开始使用,例如Form Stuff (esp. the edittext section)Hello LinearLayout 用于包含这 3 个元素的布局。

标签: android text methods input


【解决方案1】:

您不需要任何权限来放置 textInput 并操作它的数据。打开布局文件夹,然后打开主 xml 文件并转到设计视图。然后,您可以拖放文本输入。关于 Java 代码,你可以去你的 src 文件夹,然后在你的包中你会找到一个 java 文件。要获得对文本输入的引用,您需要这样的东西。

EditText et = (EditText) findViewById(R.id.mytextinput); //considering your input id is mytextinput.

那么你可以通过两种方法获取和设置它的文本:

String myText = et.getText().toString();
et.setText("my new text for input box");

试试看这个:http://www.youtube.com/watch?v=0sS-ylTxi40

更新:

TextView tv = (TextView) findViewById(R.id.textView1);
Button b = (Button) findViewById(R.id.button1);

b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) 
{
  tv.setText(et.getText().toString());
}
});

此代码将完全按照您的要求进行。只是不要忘记将具有相同 id-s 的控件放在 xml 中 :)

【讨论】:

  • 我看了很多这样的视频。它们非常有用。非常感谢,Gio。
  • 没问题。要使按钮实际执行某些操作,您必须为其添加一个侦听器。我将用它的代码更新我的答案
  • 代码编译得很好,一切看起来应该可以工作,但是当我在我的 AVD 上运行它时,它立即说“不幸的是,你好,Android 已停止”(仍然使用它作为名称。 ) XML 和 Java 代码上都没有标记错误,也没有错误输出到控制台。知道是什么原因造成的吗?
  • 实际上,我认为它在 LogCat 上显示错误,但它只是说错误在 'performLaunchActivity' 处:/
  • 确保你的类的 onCreate 是这样开始的: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);
猜你喜欢
  • 1970-01-01
  • 2012-12-09
  • 2012-11-17
  • 1970-01-01
  • 2015-02-12
  • 2015-09-08
  • 1970-01-01
  • 2014-06-26
  • 2016-10-27
相关资源
最近更新 更多