首页 > 解决方案 > findView 面临的问题(Android Studio)

问题描述

我是 Android Studio 的新手,我正在做一个项目。我正面临这个错误

在此处输入图像描述

我已经声明了 listview 但不知道为什么它不起作用。 代码:

package com.example.animation;

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class view_rooms extends AppCompatActivity {
    ListView listView;
    String mTitle[]={"Room1","Room2","Room3","Room4","Room5"};
    String mDescription[]={"Access Room1","Access Room2","Access Room3","Access Room4","Access Room5"};
    int images[]={R.drawable.lights_open,R.drawable.lights_open,R.drawable.lights_open,R.drawable.lights_open,R.drawable.lights_open};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_view_rooms);
        listView=findViewById(R.id.ListView);

    }

标签: javaandroidandroid-layout

解决方案


findViewById()通过 id 将视图搜索到布局文件中。在这种情况下进入布局:R.layout.activity_view_rooms。您需要在此布局中定义一个 ListView 小部件并分配一个 id 以使用 findViewById() 进行搜索。

例如,在布局 activity_view_rooms 中,您需要包含视图:

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

    <ListView
            android:id="@+id/list_view_id"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

    </ListView>
</LinearLayout>

稍后您可以通过以下方式使用 finViewById() 获取视图实例:

package com.example.animation;

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class view_rooms extends AppCompatActivity {
    ListView listView;
    String mTitle[]={"Room1","Room2","Room3","Room4","Room5"};
    String mDescription[]={"Access Room1","Access Room2","Access Room3","Access Room4","Access Room5"};
    int images[]={R.drawable.lights_open,R.drawable.lights_open,R.drawable.lights_open,R.drawable.lights_open,R.drawable.lights_open};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_view_rooms);
        listView=findViewById(R.id.list_view_id);

    }

推荐阅读