2014-12-07 60 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來創建新的活動,並使用相同的代碼。