在android中使用setContentView(R.layout.name.xml)很重要

时间:2015-07-08 09:43:21

标签: android android-layout

在android中使用setContentView(R.layout.name.xml)很重要吗? 在以下代码中,我想在relativeLayout Object中绘制一条线而不使用setContentView(R.layout.name.xml)。它可以成功编译。但它会停止执行时间。

Draw.java

 class Draw extends View {
Paint paint;

    public Draw(Context context) {
        super(context);
        paint = new Paint();
    }

@Override
    protected  void onDraw(Canvas canvas) {
paint.setColor(Color.RED);


canvas.drawLine(10,10,100,100,paint);
super.onDraw(canvas);
}}

MainActivity.java

class MainActivity extends Activity {
    Draw draw;
    @Override
    public void onCreate(Bundle s){
        super.onCreate(s);
        RelativeLayout relativeLayout = new RelativeLayout(this);
        draw = new Draw(this);
       relativeLayout.addView(draw,200,200);

    }
}

3 个答案:

答案 0 :(得分:0)

在获取对Activity中任何视图的任何引用之前,必须在 onCreate()方法中调用Android中的

setContentView()

如果没有setContentView(),您的活动将无法充气或分配布局。

因此,您的应用无法启动,因为启动活动没有要显示的布局或UI。

因此,总是包含一个setContentView(),将布局作为参数传递给活动的onCreate()方法。

希望有所帮助。

答案 1 :(得分:0)

setContentView所采用的方法不仅仅是设置布局资源,还有更​​重要的方法。如果它是一项新活动,它将生成窗口装饰,将主题应用于您的活动等等。所以你看,你不能只是忽略它并用你的代码替换它。

答案 2 :(得分:-1)

尝试在onCreate方法

的末尾添加此代码
setContentView(relativeLayout);