【问题标题】:How to get input from an EditText field in Android? [closed]如何从 Android 中的 EditText 字段获取输入? [关闭]
【发布时间】:2014-12-07 13:55:55
【问题描述】:

在为 Android 编码时,我看到有两种主要方法可以从 editText 字段中获取文本。第一种方式好像很常用,有点像这样。

display = (EditText) findViewById(R.id.editText1);
displayContents = display.getText().toString();
displayTwo = (EditText) findViewById(R.id.editText2);
displayText = (Button) findViewById(R.id.button1);
displayText.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        displayTwo.setText(displayContents);
    }

这似乎是在mainActivity类中使用了一个clickListener来检测点击,然后找到textfields的值。

但是,当我浏览Google's official Android tutorial 时,他们使用了另一种方法。他们首先将这行代码添加到按钮中:

android:onClick="sendMessage";

然后用这个方法代替了onClickListener:

public void sendMessage(View view) {
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.edit_message);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}

之后,我创建了一个新活动,该活动创建了一个具有不同 GUI 的新 xml 文件,以及一个具有以下内容的新类:

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// Get the message from the intent
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

// Create the text view
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(message);

// Set the text view as the activity layout
setContentView(textView);
}

这似乎是让按钮广播消息而不是被动侦听器,然后触发新的活动。

毕竟,我想我的问题是哪种方法更好用?从技术和设计的角度来看,哪一个适用于什么情况?比如,我什么时候会使用每一个?

【问题讨论】:

  • 首先,您可能在说的是如何将点击侦听器附加到某个视图,因此您的问题的标题令人困惑。其次,您在帖子第二部分提出的问题应分为多个单独的 SO 问题。目前,您的问题过于笼统和模糊
  • 抱歉,我还是 Stack Exchange 的新手。我将编辑我的问题以仅包含第一个问题。顺便说一句,你认为我应该把我的头衔改成什么,因为我不太确定我在这里要谈些什么。另外,如果我想更深入地解释 Intents,我可以在这里问吗?我只是想知道,因为我真的不明白,我想要一个更人性化的答案来解释事情。

标签: java android xml user-interface


【解决方案1】:

我对 android 很陌生,所以我可能是错的,但很确定它们是同一回事。当您添加android:onClick="sendMessage"; 它通过相同类型的侦听器,您不必亲自亲自编写它。

我想使用哪个可以说是个人喜好。就个人而言,如果事情很简单,例如单击此打开意图,那么我会使用

public void sendMessage(View view)

但是如果我希望监听器通过解析变量,或者在我猜想的特定方法中利用变量,那么创建自己的监听器会更容易。

【讨论】:

    【解决方案2】:

    您可以使用上述两种方法中的任何一种。两者在技术上没有任何区别。 要了解这些内容,请转到 android 开发人员的此链接

    http://developer.android.com/develop/index.html

    【讨论】:

      【解决方案3】:

      仅当您需要将字符串传递给新活动时,才使用意图将字符串传递给另一个活动的第二种方法。 如果您在同一个活动 xml 中有两个编辑文本,则使用按钮 clicklistener。 现在要对按钮单击做一些事情,我们必须使用方法

      1. 带有 java 监听器
      2. 带有 xml onclick 属性

      这些方法会做同样的事情,任何一个都可以使用。

      您也可以使用相同的代码在 java 侦听器中使用 Intent 创建新活动。

      【讨论】:

        猜你喜欢
        • 2021-09-15
        • 1970-01-01
        • 2020-05-24
        • 2021-04-12
        • 1970-01-01
        • 2015-11-13
        • 1970-01-01
        • 1970-01-01
        • 2013-01-12
        相关资源
        最近更新 更多