2

で Bluetooth デバイスのリストを表示しようとしてArrayAdapterいますが、アダプタのデフォルト機能をオーバーライドしてオブジェクトを表示したいと考えていますtoString()。メソッドを拡張するソリューションがあることは知っていますが、getView(...)これは物事を複雑にしすぎていると感じています。私が望むのは、表示する文字列の作成方法をオーバーライドすることだけです。Bluetooth デバイスの場合、これはgetName()の代わりに使用されtoString()ます。

したがって、以下のようなカスタム arrayadapter を作成しました。理想的には、次のようなメソッドが必要です。getDisplayString(T value)

public class MyArrayAdapter extends ArrayAdapter<BluetoothDevice> {
    ...
    @Override //I wish something like this existed
    protected String getDisplayString(BluetoothDevice b) {
        return b.getName();
    }
    ...
}
4

2 に答える 2

3

このようなことを試してください:(注:私は試していません。)

public class MyArrayAdapter extends ArrayAdapter<Object> {
  public MyArrayAdapter(Context c, List<Object> data){
   super(c, 0, data);
   mData = data;

 }
 @Override
 public Object getItem(int position){
    return ((BluetoothDevice)mData.get(position)).getName();
  }

}
于 2013-07-23T19:16:02.333 に答える