findviewbyid返回null(Textview)

时间:2012-08-27 14:22:56

标签: android textview findviewbyid

当我尝试设置textview的文本时,我得到一个nullpointerexception。不知怎的,findviewbyid方法返回null,但我不知道为什么。

这是我的xml文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<RelativeLayout
    android:id="@+id/rl_ros_layout1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="@+id/tv_ros_view1"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <ProgressBar
        android:id="@+id/pb_ros_bar1"
        style="?android:attr/progressBarStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:visibility="invisible" />
</RelativeLayout>

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/rl_ros_layout1" >

    <TableLayout
        android:id="@+id/tl_rostertable"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:stretchColumns="2" >

        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="3dp"
                android:text="@string/team" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="3dp"
                android:text="@string/pos" />

            <TextView
                android:layout_height="wrap_content"
                android:padding="3dp"
                android:text="@string/name" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="right"
                android:padding="3dp"
                android:text="@string/score" />
        </TableRow>
    </TableLayout>
</ScrollView>
</RelativeLayout>

和我的oncreate方法

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.roster);
    final Bundle extra = getIntent().getExtras();
    position = extra.getInt("pos");
    int id = de.damps.fantasy.HomeActivity.ID[position];
    url = de.damps.fantasy.HomeActivity.URL + "/roster/2011/" + id;
    tbl = (TableLayout) findViewById(R.id.tl_rostertable);
    team = (TextView) findViewById(R.id.tv_ros_view1);
    String  s= de.damps.fantasy.HomeActivity.TEAMS[position];
    team.setText(s);

    new GetRoster().execute(url);
}

发现tablelayout没有任何问题。但是textview为null。 我已经清理了项目,但它没有解决问题

如果有人能帮助我,那将是件好事

5 个答案:

答案 0 :(得分:2)

你有一个错字:

   <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:id="@+id/tv_ros_view1"
    android:textAppearance="?android:attr/textAppearanceMedium" />

(android:text而不是android:id)

答案 1 :(得分:0)

你写了

 android:text="@+id/tv_ros_view1"

而不是

android:id

答案 2 :(得分:0)

您创建ID文字视图,例如android:id="@+id/tv_ros_view1"代替android:text="@+id/tv_ros_view1",这对您来说是完整的。

答案 3 :(得分:0)

在你的错误/第一个文本视图中,你写的是这样的:

         android:text="@+id/tv_ros_view1"

只需将其替换为:

         android:id="@+id/tv_ros_view1"

这是你必须为视图(TextView)分配id的方法。

答案 4 :(得分:0)

在xml布局中:

android:text="@+id/tv_ros_view1"

应该是:

android:id="@+id/tv_ros_view1"

text属性用于告诉textview要显示的文本。