2017-07-02 48 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。 –

相关问题