android中的LayoutInflater无法以编程方式添加子级吗?

问题描述 投票:-1回答:1

我有一个LinearLayout,我想使用CardView将我的新以编程方式添加为其中的LayoutInflater作为孩子。

    llMain = (LinearLayout)findViewById(R.id.llMain);
    LayoutInflater inflater = getLayoutInflater();
    Bundle extras = getIntent().getExtras();
    if (extras != null) {
        final TextView tvAdded = new TextView(this);
        CardView cvAdded = new CardView(this);

        tvAdded.setTextSize(18);
        tvAdded.setTextColor(Color.BLACK);
        tvAdded.setClickable(true);
        tvAdded.setPadding(0, 10, 0, 0);
        tvAdded.setGravity(Gravity.CENTER);
        String value = extras.getString("etTest");
        tvAdded.setText(value);

        cvAdded  = (CardView) inflater.inflate((XmlPullParser) llMain, cvAdded, false);
        cvAdded.addView(tvAdded);
        cvAdded.setLayoutParams(new CardView.LayoutParams(CardView.LayoutParams.MATCH_PARENT, CardView.LayoutParams.MATCH_PARENT));

        llMain.addView(cvAdded);
    }

我想要的输出应该是CardView,显示匹配父级的宽度和高度,也就是llMain,但问题是,当我运行它时,它会使应用程序崩溃。这是崩溃的日志

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.wordpress.fidzsoftware/com.wordpress.fidzsoftware.MainActivity}: java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to org.xmlpull.v1.XmlPullParser
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2695)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2769)
    at android.app.ActivityThread.access$900(ActivityThread.java:177)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1430)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5910)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1405)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200)
 Caused by: java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to org.xmlpull.v1.XmlPullParser
    at com.wordpress.fidzsoftware.MainActivity.onCreate(MainActivity.java:50)
    at android.app.Activity.performCreate(Activity.java:6178)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2648)

我有一个LinearLayout,我想使用LayoutInflater llMain =(LinearLayout)findViewById(R.id.llMain);以子级的方式在其中添加以编程方式添加的CardView作为孩子。 LayoutInflater ...

android android-cardview layout-inflater
1个回答
0
投票

更改此行:

© www.soinside.com 2019 - 2024. All rights reserved.