-2

リストビューにセンサーの名前のみを表示しようとしています..ログではできますが、リストビューではできません:

 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どうすれば解決できますか?

4

1 に答える 1

1

ログは、すべてのセンサーの名前を出力しているため機能します。アダプターの動作は異なります。Adapterリスト ビュー全体に1 つ必要です。次に、センサー名やベンダーなど、複数のテキストを表示したい場合getView()は、アダプターのメソッドもオーバーライドする必要があります。そこでは、リスト ビューの 1 行のすべての設定を処理します。

リスト ビューの各行にセンサー名を表示する簡単な方法から始めましょう。

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

于 2013-10-25T18:10:24.940 に答える