我正在尝试仅在列表视图中显示传感器的名称。在日志中,我可以这样做,但在列表视图中却不能:
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_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()));
}
它在列表视图中使我出错:我该The constructor ArrayAdapter<Sensor>(SensorsActivity, int, String) is undefined
如何解决?
该日志有效,因为您正在打印其中每个传感器的名称。适配器的工作原理有所不同。您需要一个Adapter
用于整个列表视图。然后,如果您只想显示一个以上的文本,例如传感器名称和供应商,则还必须覆盖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());
}
您R.layout.customlistview
必须包含一个TextView
用于显示给定字符串(传感器名称)的单个字符。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句