Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.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
Android 如何在RelativeLayout中设置ContentView?(进度条)_Android_Progress Bar_Nullpointerexception - Fatal编程技术网

Android 如何在RelativeLayout中设置ContentView?(进度条)

Android 如何在RelativeLayout中设置ContentView?(进度条),android,progress-bar,nullpointerexception,Android,Progress Bar,Nullpointerexception,有人能给我解释一下如何在相对布局中设置ContentView吗? 我添加了一个活动,但出现了错误,空指针 我试过这个: public ProgressbarActivity(Context context) { super(context); Activity a = new Activity(); RelativeLayout rl = new RelativeLayout(getContext()); LinearLayout k = ne

有人能给我解释一下如何在相对布局中设置ContentView吗? 我添加了一个活动,但出现了错误,空指针

我试过这个:

         public ProgressbarActivity(Context context) {
    super(context);

    Activity a = new Activity();
    RelativeLayout rl = new RelativeLayout(getContext());
    LinearLayout k = new LinearLayout(getContext());
    k.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
    LinearLayout z = new LinearLayout(getContext());
    z.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));

    RoundRectShape s = new RoundRectShape(f, null, null);
    ShapeDrawable shapedrawable =  new ShapeDrawable(s);
    shapedrawable.setShape(s);
    shapedrawable.getPaint().setColor(0xffffffff);


    RoundRectShape s1 = new RoundRectShape(f, null, null);
    ShapeDrawable sd =  new ShapeDrawable(s1);
    sd.setShape(s1);
    sd.getPaint().setColor(0xff0080ff);
    rl.setLayoutParams(new LayoutParams(200, 25));

    LayoutParams lp = new LayoutParams(200, 20);
    rl.setPadding(0, 100, 0, 0);
    rl.setGravity(Gravity.CENTER_HORIZONTAL);


    ImageView iv = new ImageView(getContext());
    iv.setBackgroundDrawable(shapedrawable);
    iv.setLayoutParams(lp);


    GradientDrawable g = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, colours);


    ImageView iv3 = new ImageView(getContext());
    iv3.setBackgroundDrawable(g);
    iv3.setLayoutParams(lp);

    ClipDrawable cd = new ClipDrawable(sd, Gravity.LEFT, ClipDrawable.HORIZONTAL);
    ImageView iv2 = new ImageView(getContext());
    iv2.setBackgroundDrawable(cd);
    iv2.setLayoutParams(lp);
    cd.setLevel(5000);


    rl.addView(iv);
    rl.addView(iv2);
    rl.addView(iv3);
    a.setContentView(rl);

    onCreate();

}
我做错了什么? 有人能解释一下吗

我得到一个nullPointerException

这是我的日志:

03-30 06:58:27.369: E/AndroidRuntime(1534): FATAL EXCEPTION: main
03-30 06:58:27.369: E/AndroidRuntime(1534): java.lang.RuntimeException: Unable to start activity ComponentInfo{eng.pim.app/eng.pim.app.PimActivity}: java.lang.NullPointerException
03-30 06:58:27.369: E/AndroidRuntime(1534):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
03-30 06:58:27.369: E/AndroidRuntime(1534):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
03-30 06:58:27.369: E/AndroidRuntime(1534):     at android.app.ActivityThread.access$600(ActivityThread.java:123)
03-30 06:58:27.369: E/AndroidRuntime(1534):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
03-30 06:58:27.369: E/AndroidRuntime(1534):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-30 06:58:27.369: E/AndroidRuntime(1534):     at android.os.Looper.loop(Looper.java:137)
03-30 06:58:27.369: E/AndroidRuntime(1534):     at android.app.ActivityThread.main(ActivityThread.java:4424)
03-30 06:58:27.369: E/AndroidRuntime(1534):     at java.lang.reflect.Method.invokeNative(Native Method)
03-30 06:58:27.369: E/AndroidRuntime(1534):     at java.lang.reflect.Method.invoke(Method.java:511)
03-30 06:58:27.369: E/AndroidRuntime(1534):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
03-30 06:58:27.369: E/AndroidRuntime(1534):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
03-30 06:58:27.369: E/AndroidRuntime(1534):     at dalvik.system.NativeStart.main(Native Method)
03-30 06:58:27.369: E/AndroidRuntime(1534): Caused by: java.lang.NullPointerException
03-30 06:58:27.369: E/AndroidRuntime(1534):     at android.app.Activity.setContentView(Activity.java:1855)
03-30 06:58:27.369: E/AndroidRuntime(1534):     at eng.pim.app.ProgressbarActivity.<init>(ProgressbarActivity.java:77)
03-30 06:58:27.369: E/AndroidRuntime(1534):     at eng.pim.app.PimActivity.onCreate(PimActivity.java:24)
03-30 06:58:27.369: E/AndroidRuntime(1534):     at android.app.Activity.performCreate(Activity.java:4465)
03-30 06:58:27.369: E/AndroidRuntime(1534):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
03-30 06:58:27.369: E/AndroidRuntime(1534):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
03-30 06:58:27.369: E/AndroidRuntime(1534):     ... 11 more
03-30 06:58:27.369:E/AndroidRuntime(1534):致命异常:主
03-30 06:58:27.369:E/AndroidRuntime(1534):java.lang.RuntimeException:无法启动活动组件信息{eng.pim.app/eng.pim.app.PimActivity}:java.lang.NullPointerException
03-30 06:58:27.369:E/AndroidRuntime(1534):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
03-30 06:58:27.369:E/AndroidRuntime(1534):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
03-30 06:58:27.369:E/AndroidRuntime(1534):在android.app.ActivityThread.access$600(ActivityThread.java:123)
03-30 06:58:27.369:E/AndroidRuntime(1534):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
03-30 06:58:27.369:E/AndroidRuntime(1534):在android.os.Handler.dispatchMessage(Handler.java:99)上
03-30 06:58:27.369:E/AndroidRuntime(1534):在android.os.Looper.loop(Looper.java:137)
03-30 06:58:27.369:E/AndroidRuntime(1534):在android.app.ActivityThread.main(ActivityThread.java:4424)上
03-30 06:58:27.369:E/AndroidRuntime(1534):位于java.lang.reflect.Method.Invokenactive(本机方法)
03-30 06:58:27.369:E/AndroidRuntime(1534):位于java.lang.reflect.Method.invoke(Method.java:511)
03-30 06:58:27.369:E/AndroidRuntime(1534):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
03-30 06:58:27.369:E/AndroidRuntime(1534):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
03-30 06:58:27.369:E/AndroidRuntime(1534):在dalvik.system.NativeStart.main(本机方法)
03-30 06:58:27.369:E/AndroidRuntime(1534):由以下原因引起:java.lang.NullPointerException
03-30 06:58:27.369:E/AndroidRuntime(1534):位于android.app.Activity.setContentView(Activity.java:1855)
03-30 06:58:27.369:E/AndroidRuntime(1534):位于eng.pim.app.ProgressbarActivity.(ProgressbarActivity.java:77)
03-30 06:58:27.369:E/AndroidRuntime(1534):在eng.pim.app.PimActivity.onCreate(PimActivity.java:24)
03-30 06:58:27.369:E/AndroidRuntime(1534):在android.app.Activity.performCreate(Activity.java:4465)上
03-30 06:58:27.369:E/AndroidRuntime(1534):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)上
03-30 06:58:27.369:E/AndroidRuntime(1534):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
03-30 06:58:27.369:E/AndroidRuntime(1534):。。。还有11个

您的代码有很多问题:

1) 如果
ProgressbarActivity
是一个
活动
不使用构造函数进行初始化,则必须使用
onCreate()
方法初始化视图、生成数据、设置线程等

2) 你永远不会这样做:

Activity a = new Activity();
如果要使用构建的布局启动新活动,则必须使用
Intent
启动新活动:

Intent i = new Intent(CurrentActivityName.this, OtherActivityName.class);
startActivity(i);
上面的代码将在活动中工作,否则将代替
CurrentActivityName。这
您必须获得对某些
上下文
的引用(您可以使用方法
getApplicationContext()
)的应用程序上下文,并且您还必须在该
上下文
引用上调用
startActivity()
。如果您希望新活动具有您构建的布局,然后在新活动
onCreate()
方法中移动该代码,请使用您构建的
Relativelayout
在那里使用
setContentView()
,并使用上述代码和
意图来启动该活动。(注意:您必须在清单中声明新活动)

3)
RelativeLayout
堆叠视图(一个在其他视图之上),如果这不是您想要的,则使用规则在该布局中正确定位视图

也许你应该看一些关于如何做到这一点的教程:

--对于
活动
创建和启动活动:


-对于
RelativeLayout
使用:

您的代码有很多地方出错:

1) 如果
ProgressbarActivity
是一个
活动
不使用构造函数进行初始化,则必须使用
onCreate()
方法初始化视图、生成数据、设置线程等

2) 你永远不会这样做:

Activity a = new Activity();
如果要使用构建的布局启动新活动,则必须使用
Intent
启动新活动:

Intent i = new Intent(CurrentActivityName.this, OtherActivityName.class);
startActivity(i);
上面的代码将在活动中工作,否则将代替
CurrentActivityName。这
您必须获得对某些
上下文
的引用(您可以使用方法
getApplicationContext()
)的应用程序上下文,并且您还必须在该
上下文
引用上调用
startActivity()
。如果您希望新活动具有您构建的布局,然后在新活动
onCreate()
方法中移动该代码,请使用您构建的
Relativelayout
在那里使用
setContentView()
,并使用上述代码和
意图来启动该活动。(注意:您必须在清单中声明新活动)

3)
RelativeLayout
堆叠视图(一个在其他视图之上),如果这不是您想要的,则使用规则在该布局中正确定位视图

也许你应该看一些关于如何做到这一点的教程:

--对于
活动
创建和启动活动:


-对于
RelativeLayout
使用:

请发布日志。请发布日志。谢谢,这对我帮助很大!:D我也只有14岁:P@user1297720仔细阅读我给你的链接