Android 添加&;删除活动Java代码中的自定义布局元素

Android 添加&;删除活动Java代码中的自定义布局元素,android,android-layout,android-activity,android-intent,Android,Android Layout,Android Activity,Android Intent,我有一个主要的活动 public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //HOW TO: dynamically add or

我有一个主要的活动

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

              //HOW TO: dynamically add or remove <com.my.custom.MyCustomLayout>
        }
}
在我的活动java代码中,我想动态地添加或删除main.xml布局中的自定义布局元素

如何在我的活动Java代码中执行此操作?

您必须为自定义布局定义id。在java代码中使用此id
示例:
customLayout=(LinearLayout)findViewById(id)

现在使用customLayout调用布局

使用自定义视图创建不同的布局文件,如:

difflayout.xml:

<com.my.custom.MyCustomLayout
          xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/custom">
difflayout.xml:

参考代码部分中的容器线性布局。使用<代码> LayoutInflater > />代码>代码> AdVIEW(/COD>)和<代码> ReaveLeVIEW()/<代码> <代码> VIEW组< /Cord>类(这里是您的代码>线性布局< /代码>

< P>首先考虑如果您真的想从布局中删除视图,或者只是完全隐藏它。你需要有一个很好的理由去选择后者

仅隐藏活动中要执行的视图

findViewById(R.id.custom).setVisibility(View.GONE) // to hide
// or
findViewById(R.id.custom).setVisibility(View.VISIBLE) // to show
如果确实要从布局中完全删除视图,可以

View customView = findViewById(R.id.custom);
ViewGroup parentView = (ViewGroup) customView.getParent();
parentView.removeView(customView)

您可以通过为布局元素提供id并使用addView和removeChildView()来实现这一点。嗨,Android Killer,谢谢,请您更详细,更好地使用一些示例代码,并将其作为一个答案。亲爱的,有点忙。我会尝试这样做。是的,我知道我需要id,只是为了添加到布局元素。但我关心的是如何在Java代码中添加和删除自定义布局元素
findViewById(R.id.custom).setVisibility(View.GONE) // to hide
// or
findViewById(R.id.custom).setVisibility(View.VISIBLE) // to show
View customView = findViewById(R.id.custom);
ViewGroup parentView = (ViewGroup) customView.getParent();
parentView.removeView(customView)