【问题标题】:findviewbyid returns null (Textview)findviewbyid 返回 null (Textview)
【发布时间】:2012-08-27 22:34:28
【问题描述】:

当我尝试设置文本视图的文本时,我得到一个空指针异常。不知何故 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);
}

发现表格布局没有任何问题。但文本视图为空。 我已经清理了项目,但没有解决问题

如果有人可以帮助我会很好

【问题讨论】:

    标签: android textview findviewbyid


    【解决方案1】:

    你有一个错字:

       <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)

    【讨论】:

    • 真的。它之前是硬编码的,我忘了用 id 替换文本。谢谢
    【解决方案2】:

    你写的

     android:text="@+id/tv_ros_view1"
    

    而不是

    android:id
    

    【讨论】:

      【解决方案3】:

      您创建ID 像这样android:id="@+id/tv_ros_view1" 代替android:text="@+id/tv_ros_view1" 的文本视图,这对您完全有用。

      【讨论】:

        【解决方案4】:

        在你的 xml 布局中:

        android:text="@+id/tv_ros_view1"
        

        应该是:

        android:id="@+id/tv_ros_view1"
        

        text 属性用于告诉 textview 显示什么文本。

        【讨论】:

          【解决方案5】:

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

                   android:text="@+id/tv_ros_view1"
          

          只需将其替换为:

                   android:id="@+id/tv_ros_view1"
          

          这就是您必须将 id 分配给视图(TextView)的方式。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-08-14
            • 2011-03-16
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多