Android,查找父视图的子视图

时间:2015-04-06 04:54:16

标签: android android-layout

我在android中查找父视图的子视图时遇到问题,我执行以下操作

  • 我有一个相对布局,包含2个textviews和1个编辑文本视图(例如将整个视图称为c1)
  • 我使用linearlyt.addView(c1)将上面的视图c1添加到线性布局
  • 我将多个此类子视图添加到父视图

在linelyt中添加了很多这样的子视图后,我开始填写每个子视图的编辑文本,问题是如何在子视图的Textview中获取其编辑文本正在填写的内容/文本集.TIA

2 个答案:

答案 0 :(得分:1)

试试这个..

public void findEditText(View parentview) {
        if (!(parentview instanceof EditText)) {
            System.out.println(((EditText)parentview).getText());
        }
        // If a layout container, iterate over children and seed recursion.
        if (parentview instanceof ViewGroup) {

            for (int i = 0; i < ((ViewGroup) parentview).getChildCount(); i++) {
                View innerView = ((ViewGroup) parentview).getChildAt(i);
                findEditText(innerView);
            }
        }
    }

答案 1 :(得分:0)

第一个答案是好的。如果您的行具有恒定的结构,那么根据您的情况需要更具体的内容......:

for (int i = 0; i < yourLinearLayout.getChildCount(); i++) {
    RelativeLayout relativeLayout = (RelativeLayout) yourLinearLayout.getChildAt(i);
    TextView textView1 = relativeLayout.getChildAt(0);
    TextView textView2 = relativeLayout.getChildAt(1);
    EditText editText = relativeLayout.getChildAt(2);
    ...
}