2016-08-24 21 views
0

我想傳遞一個按鈕的onClickListener的編輯文本引用,我有不同的選擇: - 我可以通過創建一個自定義類並實現onClickListener來傳遞它,如下所示: -傳遞一個按鈕的onClickListener的編輯文本引用

public class MyLovelyOnClickListener implements OnClickListener 
     { 

     EditText myLovelyEditText; 
     public MyLovelyOnClickListener(EditText myLovelyVariable) { 
       this.myLovelyVariable = myLovelyVariable; 
     } 

     @Override 
     public void onClick(View v) 
     { 
      String editTextValue = myLovelyEditText.getText().toString(); 

     } 
     }; 

MyLovelyOnClickListener onClickListenerVar = new MyLovelyOnClickListener(myEditText); 


ButtonVar.setOnClickListener(onClickListenerVar); 

我的直覺說前者是正確的方法。

但我也可以使EditText成爲一個成員變量,並從onClickListener中引用它。這樣做有什麼問題?

ButtonVar.setOnClickListener(
    new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 

        String editTextValue = mEditText.getText().toString(); 

       } 
      }); 

與第二種方法相比,第一種方法有什麼優勢嗎?如果是,那麼是什麼?

+0

什麼是與參考您的目標是什麼? – Stefan

+0

@Opoo ...它可以變化..例如,如果我想從編輯文本中獲取文本並將其上傳到服務器,請點擊「保存按鈕」 –

+1

您的代碼? –

回答

0

只需在您的活動(或片段)中創建該字段並使用該參考。

private EditText editText; 
在OnCreate中

editText = (EditText)findViewById(R.id.your_id); 

你onClickListener你可以使用:

editText.getText() 
+0

請參閱更新的問題。 –

相關問題