java - 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);
}
解决方案
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);
}
推荐阅读
- javascript - 从 javascript 函数创建 HTML5 画布
- node.js - 我应该在 NPM package.json 中将我的“启动”脚本设置为什么?
- sas - 在 SAS 中创建原始数据文件
- php - 雄辩的关系方法不存在
- macos - 为什么我的 SDL_ttf 字体如此像素化和丑陋?有更好的字体渲染方法吗?
- python - 将迭代器传递给 dask.delayed 函数
- python - tkinter 中的 textvariable 参数在初始运行后未更新
- nuxt.js - 为什么配置上的 nuxt.js 全局 css 不起作用?
- python - Python 3 中的高效字符串连接
- android - 如何在 android recyclerview ltem 中添加自定义关闭按钮?