Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建子视图时是否可以通知父视图_Java_Android - Fatal编程技术网

Java 创建子视图时是否可以通知父视图

Java 创建子视图时是否可以通知父视图,java,android,Java,Android,在android中,用户界面可以动态创建,那么有没有办法知道是否为父用户创建了子用户界面 例如,如果我有一个线性布局作为父级,并且我动态创建了一个子按钮。有没有人去通知家长 这很简单-如果您有LinearLayout名称linearLayout1,那么向其添加child的唯一原因是 通过调用linearLayout.addView(查看子对象)方法。 因此,您确切地知道子对象添加的时间:只能在调用以下方法之后添加:) 例如: 这很简单-如果您有LinearLayout名称linearLayout

在android中,用户界面可以动态创建,那么有没有办法知道是否为父用户创建了子用户界面


例如,如果我有一个线性布局作为父级,并且我动态创建了一个子按钮。有没有人去通知家长

这很简单-如果您有LinearLayout名称linearLayout1,那么向其添加child的唯一原因是 通过调用linearLayout.addView(查看子对象)方法。 因此,您确切地知道子对象添加的时间:只能在调用以下方法之后添加:) 例如:


这很简单-如果您有LinearLayout名称linearLayout1,那么向其添加child的唯一原因是 通过调用linearLayout.addView(查看子对象)方法。 因此,您确切地知道子对象添加的时间:只能在调用以下方法之后添加:) 例如:


Tal Kanel的版本可以工作,但为了避免重复代码,我建议使用HierarchyChangeListener:

LinearLayout ll = (LinearLayout)findViewById(R.id.mylinearlayout);
ll.setOnHierarchyChangeListener(new ViewGroup.OnHierarchyChangeListener() {
    public void onChildViewAdded(View parent, View child) {
        //handle the logic for an added child here
    }    
    public void onChildViewRemoved(View parent, View child) {
        //optionally, handle logic for a removed child
    }
});

Tal Kanel的版本可以工作,但为了避免重复代码,我建议使用HierarchyChangeListener:

LinearLayout ll = (LinearLayout)findViewById(R.id.mylinearlayout);
ll.setOnHierarchyChangeListener(new ViewGroup.OnHierarchyChangeListener() {
    public void onChildViewAdded(View parent, View child) {
        //handle the logic for an added child here
    }    
    public void onChildViewRemoved(View parent, View child) {
        //optionally, handle logic for a removed child
    }
});

你的问题不是很清楚,你到底想做什么?为什么你想通知一个线性布局添加了一个孩子?你的问题不是很清楚,你到底想做什么?为什么你想通知一个线性布局添加了一个孩子?在我看来,你的答案比我的答案好,但这并不是因为重复代码问题:通过使用onHierarchyChangeListener,您可以真正确保孩子添加了seccesfully。在我看来,您的答案似乎比我的答案更好,但不是因为重复代码问题:通过使用onHierarchyChangeListener,您可以真正确保孩子添加了seccesfully。