获取对我的 Android Activity 中的视图的引用

发布于 2024-10-19 16:41:42 字数 469 浏览 1 评论 0原文

我有一个由几个 Button 组成的 LinearLayout,我使用 将其添加到 onCreate(..) 方法中的活动中setContentView(R.layout.myscreen)。到目前为止没有什么意外。

如何获取这些按钮的迭代器的引用?我想向它们添加侦听器,但我不想使用其 android:id 直接引用按钮。

此处此处,但他们并没有完全回答我的问题。

I have a LinearLayout comprising of a few Buttons and I add this to my activity in the onCreate(..) method with setContentView(R.layout.myscreen). No surprises so far.

How do I get a reference to an iterator to these buttons? I'd like to add listeners to them but I'd rather not directly reference the Button's using their android:id.

Similar questions have been asked here and here but they don't quite answer my question.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

断舍离 2024-10-26 16:41:42

尝试类似的方法,在 xml 中向 LinearLayout 提供一个 id root_layout

LinearLayout mLayout = (LinearLayout) findViewById(R.id.root_layout);
    for(int i = 0; i < mLayout.getChildCount(); i++)
    {
        Button mButton = (Button) mLayout.getChildAt(i);
        mButton.setOnClickListener(this);
    }

其中 mLayout 是线性布局的对象,并且您的活动必须实现 OnClickListener ,这里是通用侦听器

@Override
public void onClick(View v)
{
    Button mButton = (Button)v;
    String buttonText = mButton.getText().toString();

}

注意:为此正常工作,线性布局必须只包含按钮,没有其他视图

Try something like this provide an id root_layout in xml to LinearLayout

LinearLayout mLayout = (LinearLayout) findViewById(R.id.root_layout);
    for(int i = 0; i < mLayout.getChildCount(); i++)
    {
        Button mButton = (Button) mLayout.getChildAt(i);
        mButton.setOnClickListener(this);
    }

Where mLayout is object of you Linear Layout and Your activity must implements OnClickListener and here goes general listener

@Override
public void onClick(View v)
{
    Button mButton = (Button)v;
    String buttonText = mButton.getText().toString();

}

NOTE: For this to work properly you Linear Layout must only contains button no other views

ヅ她的身影、若隐若现 2024-10-26 16:41:42

您应该看看我的答案这里< /a>.

简而言之。我将通过在每个 Button 的 XML 布局中设置 onClick 属性来为按钮分配一个侦听器。

在您的 Activity 内部,您需要一个像下面这样的公共方法,这基本上就是您想要在侦听器中执行的操作。

public void myFancyMethod(View v) {
    // do something interesting here
}

You should take a look at my answer here.

In short. I'd assign the buttons a listener by setting the onClick attribute in the XML layout on each Button.

Inside of your Activity you'll need a public method like the one below which basically is what you want to do in your listener.

public void myFancyMethod(View v) {
    // do something interesting here
}
小瓶盖 2024-10-26 16:41:42

如果您想访问其他元素,您可以尝试以下语法:

<参考变量> = () findViewById(R.id.);

例如:

TextView textView= (TextView) findViewById(R.id.t1); //我使用 t1 在布局中引用我的文本视图。

这可能有效。
然后,您可以使用这些视图及其内置方法来执行任意数量的工作。

If you want to go for accessing other elements you may try following syntax:

<ElementClass> <referencevariable> = (<ElementClass>) findViewById(R.id.<id_of_the_element>);

For Example:

TextView textView= (TextView) findViewById(R.id.t1); //I used t1 to refer my textview in the Layout.

This might work.
Then you can use these views with their inbuilt methods to perform as many as work you want.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文