【发布时间】: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