Android listview名称中出现错误
我试图在我的listview中仅显示传感器的名称。。在日志中,我可以这样做,但在我的listview中,我不能:Android listview名称中出现错误,android,listview,android-listview,android-sensors,Android,Listview,Android Listview,Android Sensors,我试图在我的listview中仅显示传感器的名称。。在日志中,我可以这样做,但在我的listview中,我不能: mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); deviceSensors = mSensorManager.getSensorList(Sensor.TYPE_ALL); for(Sensor s : deviceSensors) { Log.d
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
deviceSensors = mSensorManager.getSensorList(Sensor.TYPE_ALL);
for(Sensor s : deviceSensors) {
Log.d("SENSORS", s.getName());
listView.setAdapter(new ArrayAdapter<Sensor>(this,
R.layout.customlistview, deviceSensors);
}
mSensorManager=(SensorManager)getSystemService(Context.SENSOR\u SERVICE);
deviceSensors=msSensorManager.getSensorList(Sensor.TYPE_ALL);
用于(传感器s:设备传感器){
Log.d(“传感器”,s.getName());
setAdapter(新的ArrayAdapter(此,
R.layout.customlistview,设备传感器);
}
通过这种方式,我可以在日志中显示名称。在listview中,会显示有关传感器的所有信息,而不仅仅是名称。如果我尝试使用这种方式:
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
deviceSensors = mSensorManager.getSensorList(Sensor.TYPE_ALL);
for(Sensor s : deviceSensors) {
Log.d("SENSORS", s.getName());
listView.setAdapter(new ArrayAdapter<Sensor>(this,
R.layout.customlistview, s.getName()));
}
mSensorManager=(SensorManager)getSystemService(Context.SENSOR\u SERVICE);
deviceSensors=msSensorManager.getSensorList(Sensor.TYPE_ALL);
用于(传感器s:设备传感器){
Log.d(“传感器”,s.getName());
setAdapter(新的ArrayAdapter(此,
R.layout.customlistview,s.getName();
}
它在listview中获取错误:
构造函数ArrayAdapter(SensorsActivity,int,String)是未定义的
如何解决?日志工作,因为您正在打印其中每个传感器的名称。适配器的工作方式不同。整个列表视图需要一个适配器
。然后,当您想显示多个文本,例如传感器名称和供应商时,您还必须覆盖getView()
方法。在适配器中处理列表视图中一行的所有设置
让我们从简单的方式开始,仅在列表视图的每一行中输入传感器名称:
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
deviceSensors = mSensorManager.getSensorList(Sensor.TYPE_ALL);
ArrayAdapter adapter = new ArrayAdapter<String>(this, R.layout.customlistview));
listView.setAdapter(adapter);
for(Sensor s : deviceSensors) {
Log.d("SENSORS", s.getName());
adapter.add(s.getName());
}
mSensorManager=(SensorManager)getSystemService(Context.SENSOR\u SERVICE);
deviceSensors=msSensorManager.getSensorList(Sensor.TYPE_ALL);
ArrayAdapter=新的ArrayAdapter(this,R.layout.customlistview));
setAdapter(适配器);
用于(传感器s:设备传感器){
Log.d(“传感器”,s.getName());
adapter.add(s.getName());
}
您的
R.layout.customlistview
必须包含一个用于显示给定字符串(传感器名称)的TextView
。是否要列表中的名称?是的,只有传感器的名称。。可能还有供应商。我认为是s.getVendor()
。。但我不知道如何..如果您需要供应商和名称,请使用自定义适配器。用于显示名称,请使用arraylist。将名称添加到for循环中的列表中。外部for循环ArrayAdapter adapter=新的ArrayAdapter不工作..我在s
中遇到错误。。你能告诉我如何使用我上面发布的代码吗?更新后的代码和错误是什么?好的,这个解决方案是有效的。但是它只显示了一个传感器。。是吗?对不起,我刚才看到了所有的传感器,但列表中只显示了第一项。。我认为原因是列表的高度。。