当前位置: 代码迷 >> Android >> android setContentView()步骤报错
  详细解决方案

android setContentView()步骤报错

热度:11   发布时间:2016-04-28 06:44:12.0
android setContentView()方法报错
请教问题如下:
main.xml布局文件如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/themain"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</RelativeLayout>
给RelativeLayout添了一个id,
在Activity中
不使用setContentView(R.layout.main);
而使用setContentView(R.id.themain);
为何程序会报错强退?

先谢谢了!
------解决方案--------------------
setContentView这个里面要放个布局文件,R.layout.main指向的就是那份文件,R.id.themain只是指那个RelativeLayout而已
------解决方案--------------------
如上楼所说,R.id.themain只是指那个RelativeLayout而已,返回的是一个int,如果你把它改成
setContentView(findViewById(R.id.themain))就不会有错了哦,因为RelativeLayout也是个view的子类。
------解决方案--------------------
setContentView  根据字面意思就可以知道  是设置view,它需要的参数是一个视图文件。R.id.themain只是那个布局的id。
------解决方案--------------------
setContentView()里面加载布局 文件,也就是加载R,layout.main这个布局文件,而RelativeLayout仅仅相当于一个view ,而不是布局文件!所以他要加载的话是通过findVIewById(int)进行加载的!

  相关解决方案