2017-07-02 23 views
1

我已經在android studio中動態創建了所有視圖。如何在Android中創建動態創建的視圖時添加事件處理程序?

例:

RelativeLayout big = new RelativeLayout(this); 
for(int i=0; i<50; i++) 
{ 
    RelativeLayout mini = new RelativeLayout(this); 
    TextView t = new TextView(this); 
    mini.addView(t); 
    big.addView(mini); 
} 

現在,在示例代碼中,我要添加事件,如onTouch的onClick等的所有 '迷你' RelativeLayouts這將改變的backgroundColor被觸摸/點擊的RelativeLayout的。我可以用單功能嗎?

其實,我是Android應用開發的新手。我已經處理的事件在VB.net輕鬆
(例

AddHandler mini.Click, AddressOf Clicked 
//sample example 
Public Clicked(Byval sender As Object, e As EventArgs) 
    sender.BackColor=Color.Black 
End Sub 

我想要做這樣的在Java(機器人),這可能嗎?

回答

1

對於每個項目,您可以使用setOnClickListener()和​​:

mini.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       // your action 
      } 
     }); 

mini.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View view, MotionEvent motionEvent) { 
       // your action 
       return true; 
      } 
     }); 
+0

謝謝@ GVillani82 :) –

+0

它的工作。謝謝 :) –

0

首先,您正在重新創建RelativeLayout object mini,因此總是隻有一個對象。而且,您需要使用各自的ID將它們與不同的RelativeLayout視圖元素綁定。

然後,您可以繼續創建並附加事件偵聽器和處理程序。代碼是非常基本的,因爲你甚至不知道要這樣做,我建議你首先通過Android應用程序開發的基礎知識。

+0

感謝您的答覆。如果你給我一些示例代碼,它會真的幫助我! –

+0

[This](https://stackoverflow.com/questions/10673628/implementing-onclicklistener-for-dynamically-created-buttons-in-android)正是你在尋找:)請接受我的答案,如果你認爲它幫助你 –

+0

您創建的RelativeLayout對象需要設置爲某個視圖的ID。 –

相關問題