2013-08-07 70 views
0

我是新來的android編程。
我已經創建了一些按鈕,EditText動態併爲它們設置了onclick監聽器。 這裏的一些按鈕和EditText我必須寫不同的邏輯。如何識別特定(特定)視圖被點擊動態創建視圖

如果我寫

public void onClick(View v) { 

if(v instanceof Button){  
// do some thing 

}else if(v instanceof EditText){ 

// do some thing 
} 
    } 

所有按鈕和相同的EditText施加邏輯。
但我想要一些按鈕和Edittext的特定邏輯。 我可以通過爲某些Editext /按鈕和標識設置標籤來完成此操作。
這是唯一的解決方案嗎?

回答

0
in onClick you can write switch case based on id of each component (button etc): 

     @Override 
     public void onClick(View v) { 
      switch(v.getId()){ 

       case R.id.camera: 
         break; 

       case R.id.camera_focused: 
         break; 
} 
+0

主席先生,我已創建按鈕和動態的EditText,我怎麼寫的情況下R.id.Button1? – LMK

+0

您可以爲每個按鈕添加並使用它們。按如下所示操作:button.getId()。但嘗試使用XML。你的代碼將更加靈活 – Sushil

+1

或者你在哪裏編寫監聽器,那裏只處理它。 – Sushil

0
final Button button = new Button(this); 
     button.setText("Click to change second line of text"); 
     OnClickListener buttonListener = new View.OnClickListener() { 
     boolean clicked = false; 
     int numClicks = 0; 
      @Override 
      public void onClick(View v) { 
      if(numClicks > 5) 
      { 
       button.setText("STOP IT"); 
      } 
      numClicks++; 
      if(clicked == false){ 
       clicked = true; 
       tv2.setText("Text Changed on Button Click");  
      } 
      else 
      { 
       clicked = false; 
       tv2.setText("Click again"); 
      } 

      } 
     }; 
     button.setOnClickListener(buttonListener);