在我的Android Activity中获取对Views的引用

Tim*_*Tim 4 android iterator view button

我有LinearLayout几个Buttons的组成,我将此添加到我的onCreate(..)方法中的活动setContentView(R.layout.myscreen).到目前为止没有惊喜.

如何获得对这些按钮的迭代器的引用?我想向他们添加听众,但我宁愿不直接引用他们的android:id.

这里这里也提出类似的问题,但它们并没有完全回答我的问题.

ing*_*abh 6

尝试这样的事情在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);
    }
Run Code Online (Sandbox Code Playgroud)

其中mLayout是你的对象线性布局和你的活动必须实现OnClickListener,这里是普通的监听器

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

}
Run Code Online (Sandbox Code Playgroud)

注意:为了使其正常工作,线性布局必须仅包含按钮而不包含其他视图