【问题标题】:How to add event handler when creating dynamically created view in Android? [duplicate]在 Android 中创建动态创建的视图时如何添加事件处理程序? [复制]
【发布时间】:2017-07-03 03:52:36
【问题描述】:

我已经在 android studio 中动态创建了所有视图。

例如:

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);
}

现在,在示例代码中,我想为所有“mini”RelativeLayouts 添加 onTouchonClick 等事件将改变触摸/点击的RelativeLayout的backgroundColor。我可以在单个函数中做到这一点吗?

实际上,我是 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(android)中这样做,可以吗?

【问题讨论】:

    标签: java android vb.net event-handling


    【解决方案1】:

    对于每个项目,您可以使用setOnClickListener()setOnTouchListener()

    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;
                }
            });
    

    【讨论】:

    • 谢谢@GVillani82 :)
    • 成功了。谢谢:)
    【解决方案2】:

    首先,您正在重新创建 RelativeLayout 迷你对象,因此始终只有一个对象。此外,您需要使用它们各自的 id 将它们与不同的 RelativeLayout 视图元素绑定。

    然后您可以继续创建和附加事件侦听器和处理程序。代码是非常基础的,因为你甚至不知道如何去做,我建议你先了解一下 Android 应用开发的基础知识。

    【讨论】:

    • 感谢您的回复。如果你给我一些示例代码,它真的会帮助我!
    • This 正是您要找的 :) 如果您认为我的回答对您有帮助,请接受我的回答
    • 您创建的RelativeLayout对象需要设置为某个视图的id。
    猜你喜欢
    • 1970-01-01
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 2018-04-23
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    相关资源
    最近更新 更多