如何从Android中的EditText字段获取输入?

时间:2014-12-07 13:55:56

标签: java android xml user-interface

在为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来检测点击,然后找到文本字段的值。

然而,当我查看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);
}

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

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

3 个答案:

答案 0 :(得分:0)

您可以使用上述两种方法中的任何一种。两者都没有任何技术差异。 并且要了解那些东西,请访问这个链接af android开发人员

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

答案 1 :(得分:0)

我对android很新,所以我可能错了,但很确定它们是一样的。添加android:onClick="sendMessage";时 它通过同一类型的听众,你不必亲自亲自编程。

我猜这个可以说是个人偏好。就个人而言,如果事情很容易,例如点击此按钮打开一个意图,那么我会使用

public void sendMessage(View view)

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

答案 2 :(得分:0)

仅在需要将字符串传递给新活动时才使用第二种方法,其中使用intent将字符串传递给另一个活动。 如果您在同一活动xml中同时拥有两个edittexts,那么请使用clicklistener按钮。 现在要点击按钮,我们需要方法

  1. with java listener
  2. with xml onclick attribute
  3. 这些方法会做同样的事情,任何一个都可以使用。

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