2013-05-17 31 views
1

我正在使用一種方法:button_click(View view)在editText上設置文本,並且我有很多按鈕,每個按鈕都應該在特定的editText上設置文本。如何知道哪個按鈕叫做方法?

有沒有什麼辦法知道哪個按鈕叫做方法,這樣我就可以設置正確的editText文本了?

這裏是方法的代碼:

public void button_click(View view) { 

      // Create the dialog 
      final Dialog mDateTimeDialog = new Dialog(view.getContext()); 
      // Inflate the root layout 
      LayoutInflater inflater = (LayoutInflater) view.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      final RelativeLayout mDateTimeDialogView = (RelativeLayout) inflater.inflate(R.layout.datepick, null); 
      // Grab widget instance 
      final DateTimePicker mDateTimePicker = (DateTimePicker) mDateTimeDialogView 
        .findViewById(R.id.DateTimePicker); 
      mDateTimePicker.setDateChangedListener(this); 

      // Update demo edittext when the "OK" button is clicked 
      ((Button) mDateTimeDialogView.findViewById(R.id.SetDateTime)) 
        .setOnClickListener(new OnClickListener() { 
         public void onClick(View v) { 
          mDateTimePicker.clearFocus(); 
          // TODO Auto-generated method stub 
          String result_string = mDateTimePicker.getMonth() 
            + "/" 
            + String.valueOf(mDateTimePicker.getDay()) 
            + "/" 
            + String.valueOf(mDateTimePicker.getYear()) 
            + " " 
            + String.valueOf(mDateTimePicker.getHour()) 
            + ":" 
            + String.valueOf(mDateTimePicker.getMinute()); 

          edit_text1.setText(result_string); 
          mDateTimeDialog.dismiss(); 
         } 
        }); 

      // Cancel the dialog when the "Cancel" button is clicked 
      ((Button) mDateTimeDialogView.findViewById(R.id.CancelDialog)) 
        .setOnClickListener(new OnClickListener() { 
         public void onClick(View v) { 
          // TODO Auto-generated method stub 
          mDateTimeDialog.cancel(); 
         } 
        }); 

      // Reset Date and Time pickers when the "Reset" button is clicked 

      ((Button) mDateTimeDialogView.findViewById(R.id.ResetDateTime)) 
        .setOnClickListener(new OnClickListener() { 

         public void onClick(View v) { 
          // TODO Auto-generated method stub 
          mDateTimePicker.reset(); 
         } 
        }); 

      // Setup TimePicker 
      // No title on the dialog window 
      mDateTimeDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
      // Set the dialog content view 
      mDateTimeDialog.setContentView(mDateTimeDialogView); 
      // Display the dialog 
      mDateTimeDialog.show(); 
     } 
+1

的'View'傳遞到'onClick'是查看/按鈕被點擊的參考。 – 323go

+0

http://stackoverflow.com/questions/15942614/how-to-obtain-and-pass-the-value-of-a-button/15942680#15942680。檢查鏈接。你可以得到點擊在你的病例按鈕 – Raghunandan

+0

的感謝ID @拉康丹丹,幫助了我很多:) – kyokotsu

回答

5

傳遞的View實際上是兩個按鈕中

int id = view.getId(); 

檢索。所有你需要做的是切換ID如下:

switch (view.getId()) { 
case R.id.button1: 
    // Do something here related to button 1 
    break; 
case R.id.button2: 
    // Do something here related to button 2 
    break; 
} 

編輯:錯字

2

你很幸運 - 傳遞到您的處理程序是用戶點擊的實際視圖的View view。所以視圖本身就是按鈕。檢查出docs

0

在這種方法中,你已經通過視圖,其觸發的事件(Button)v應該給你參考

public void onClick(View v) 
4

您單擊upone視圖是onClick的說法。如果你需要它的ID,你可以用這種方式,你可以於R.id.yourButtonId切換,瞭解哪些已被點擊

相關問題