Android - findViewById不起作用

时间:2014-08-31 17:05:32

标签: android listview

我很茫然。

我的活动中的代码不是主要的活动。

如下:

@Override
protected void onCreate(Bundle savedInstanceState) {
    while (bsp <10)
    {
        list.add(bsp.toString());
        bsp++;
    }
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fragment_view);
    ListView view;
    view = (ListView)findViewById(R.id.view);

但是,最后一行不起作用:

view cannot be resolved or is not a field

有没有人有想法?

如有疑问,这里有片段:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 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="com.example.myapp.ViewActivity$PlaceholderFragment" >

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world" />
<ListView
    android:id=”@+id/view″
    android:layout_width=”fill_parent”
    android:layout_height=”wrap_content” >
</ListView>


</RelativeLayout>

还是有其他方法可以获得视图吗?

2 个答案:

答案 0 :(得分:2)

您的所有布局都没有ID为view的视图,因此R.id.view无法解析为生成的R中的字段。

确保您尝试findViewById()的ID是您在XML中引入的ID,例如@+id/

要让findViewById()返回非空结果,请确保在您拥有的布局中找到ID作为内容视图,在这种情况下为layout/fragment_view.xml


在您发布的布局中,您似乎有@+id/view。如果生成的R是较旧的陈旧版本,请清理并重建项目。

答案 1 :(得分:1)

你的引号很奇怪,与其他人不同,请尝试替换:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world" />
<ListView
    android:id=”@+id/view″
    android:layout_width=”fill_parent”
    android:layout_height=”wrap_content” >
</ListView>

通过

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world" />
<ListView
    android:id="@+id/view"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >
</ListView>