在为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);
}
这似乎让按钮广播消息而不是拥有被动侦听器,然后触发新活动。
毕竟,我想我的问题是哪种方法更好用?从技术和设计的角度来看,哪一种适用于哪种情况?比如,我什么时候才能使用每一个?
答案 0 :(得分:0)
您可以使用上述两种方法中的任何一种。两者都没有任何技术差异。 并且要了解那些东西,请访问这个链接af android开发人员
答案 1 :(得分:0)
我对android很新,所以我可能错了,但很确定它们是一样的。添加android:onClick="sendMessage";
时
它通过同一类型的听众,你不必亲自亲自编程。
我猜这个可以说是个人偏好。就个人而言,如果事情很容易,例如点击此按钮打开一个意图,那么我会使用
public void sendMessage(View view)
但是如果我想让侦听器通过解析变量,或者在我想的特定方法中使用变量,那么我就更容易创建自己的监听器。
答案 2 :(得分:0)
仅在需要将字符串传递给新活动时才使用第二种方法,其中使用intent将字符串传递给另一个活动。 如果您在同一活动xml中同时拥有两个edittexts,那么请使用clicklistener按钮。 现在要点击按钮,我们需要方法
这些方法会做同样的事情,任何一个都可以使用。
您可以使用相同的代码在java侦听器中使用intent创建新活动。