2014-12-07 40 views
-1

在为Android编码时,我看到从editText字段获取文本的两种主要方式。第一种方式似乎很常用,看起来有点像这样。如何从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); 
} 

在那之后,我创建了做了一个新的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); 
} 

这似乎有按钮广播的消息,而不是具有无源侦听器,然后触发新的活性。

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

+0

首先,你可能会说的是如何将点击监听器附加到某个视图,因此问题的标题很混乱。其次,你在这篇文章的第二部分中提出的问题应该分成几个独立的SO问题。目前,您的问题太宽泛而模糊 – Egor 2014-12-07 14:05:07

+0

哦,对不起,我还是新来的Stack Exchange。我会编辑我的问题只包括第一个。顺便说一句,你认为我应该改变我的头衔,因为我不确定我进入这里的事情。另外,如果我想更深入地解释意图,我可以问这里吗?我只是想知道,因为我真的不明白,我想要一个更人性化的答案来解释事情。 – Saamoz 2014-12-07 14:32:02

回答

0

我很新到Android,所以我可能是错的,但可以肯定他们是同样的事情。当你添加android:onClick="sendMessage"; 它通过相同类型的监听器,你不必亲自编程。

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

public void sendMessage(View view) 

但是,如果我想听众我想具体的方法中,通过解析变量,或利用变量,那么它会更容易为我创造我自己的听众。

0

第二种方法中,意图用于将字符串传递给另一个活动仅在需要将字符串传递给新活动时使用。 如果您在同一个活动xml中同时拥有两个edittext,请使用按钮clicklistener。 现在做一些按钮点击我们不得不方法

  1. 与Java侦听
  2. 与XML onclick属性

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

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