android – 动态地将视图添加到特定的片段布局中

android – 动态地将视图添加到特定的片段布局中,第1张

概述我试图动态地将TextView添加到作为片段的一部分的布局中,但它不起作用.应用程序启动后立即关闭. 我认为它必须做一些事情 TextView Paper = new TextView(this);部分.因为我正在使用Fragments,所以我不知道如何获得正确的上下文.也许我的假设是错误的,但我真的不知道错误可能在哪里. public class PageFragment extends Fra 我试图动态地将TextVIEw添加到作为片段的一部分的布局中,但它不起作用.应用程序启动后立即关闭.
我认为它必须做一些事情
TextVIEw Paper = new TextVIEw(this);部分.因为我正在使用Fragments,所以我不知道如何获得正确的上下文.也许我的假设是错误的,但我真的不知道错误可能在哪里.
public class PageFragment extends Fragment {    private int fragmentNR;    public PageFragment(int nr) {        this.fragmentNR = nr;    }    @OverrIDe    public VIEw onCreateVIEw(LayoutInflater inflater,VIEwGroup container,Bundle savedInstanceState) {        VIEw v = new VIEw(getActivity());        if (fragmentNR == 0)            v = inflater.inflate(R.layout.page1,container,false);        else if (fragmentNR == 1)            v = inflater.inflate(R.layout.page2,false);        else if (fragmentNR == 2)            v = inflater.inflate(R.layout.page3,false);        return v;    }}

06001

logcat的

07-18 16:32:58.330: E/AndroIDRuntime(614): FATAL EXCEPTION: main07-18 16:32:58.330: E/AndroIDRuntime(614): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.loni.math_prime/com.loni.math_prime.MainActivity}: java.lang.NullPointerException07-18 16:32:58.330: E/AndroIDRuntime(614):  at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2059)07-18 16:32:58.330: E/AndroIDRuntime(614):  at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)07-18 16:32:58.330: E/AndroIDRuntime(614):  at androID.app.ActivityThread.access0(ActivityThread.java:130)07-18 16:32:58.330: E/AndroIDRuntime(614):  at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)07-18 16:32:58.330: E/AndroIDRuntime(614):  at androID.os.Handler.dispatchMessage(Handler.java:99)07-18 16:32:58.330: E/AndroIDRuntime(614):  at androID.os.Looper.loop(Looper.java:137)07-18 16:32:58.330: E/AndroIDRuntime(614):  at androID.app.ActivityThread.main(ActivityThread.java:4745)07-18 16:32:58.330: E/AndroIDRuntime(614):  at java.lang.reflect.Method.invokeNative(Native Method)07-18 16:32:58.330: E/AndroIDRuntime(614):  at java.lang.reflect.Method.invoke(Method.java:511)07-18 16:32:58.330: E/AndroIDRuntime(614):  at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)07-18 16:32:58.330: E/AndroIDRuntime(614):  at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:553)07-18 16:32:58.330: E/AndroIDRuntime(614):  at dalvik.system.NativeStart.main(Native Method)07-18 16:32:58.330: E/AndroIDRuntime(614): Caused by: java.lang.NullPointerException07-18 16:32:58.330: E/AndroIDRuntime(614):  at com.loni.math_prime.MainActivity.onCreate(MainActivity.java:30)07-18 16:32:58.330: E/AndroIDRuntime(614):  at androID.app.Activity.performCreate(Activity.java:5008)07-18 16:32:58.330: E/AndroIDRuntime(614):  at androID.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)07-18 16:32:58.330: E/AndroIDRuntime(614):  at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2023)07-18 16:32:58.330: E/AndroIDRuntime(614):  ... 11 more

XML

<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:layout_wIDth="fill_parent"    androID:layout_height="fill_parent"    androID:orIEntation="vertical"     >    <androID.support.v4.vIEw.VIEwPager        androID:ID="@+ID/vIEwpager"        androID:layout_wIDth="fill_parent"        androID:layout_height="fill_parent" >        <androID.support.v4.vIEw.PagerTitleStrip            androID:layout_wIDth="fill_parent"            androID:layout_height="wrap_content"            androID:textSize="32dp"            androID:textStyle="bold"            androID:textcolor="#fff5ee"            androID:layout_gravity="top" />    </androID.support.v4.vIEw.VIEwPager></linearLayout>
解决方法 解决了:
public class PageFragment extends Fragment {private int fragmentNR;public PageFragment(int nr) {    this.fragmentNR = nr;}@OverrIDepublic VIEw onCreateVIEw(LayoutInflater inflater,Bundle savedInstanceState) {    VIEw v = new VIEw(getActivity());    if (fragmentNR == 0)        v = inflater.inflate(R.layout.page1,false);    else if (fragmentNR == 1){        v = inflater.inflate(R.layout.page2,false);        VIEw tv = v.findVIEwByID(R.ID.Ausgabe);        ((TextVIEw)tv).setText("TestText");        VIEw pl = v.findVIEwByID(R.ID.PageLayout);        TextVIEw Paper = new TextVIEw(pl.getContext());        Paper.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));        Paper.setText("Inserted TestText");        ((linearLayout)pl).addVIEw(Paper);        }    else if (fragmentNR == 2)        v = inflater.inflate(R.layout.page3,false);    return v;}}
总结

以上是内存溢出为你收集整理的android – 动态地将视图添加到特定的片段布局中全部内容,希望文章能够帮你解决android – 动态地将视图添加到特定的片段布局中所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1130899.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存