如何覆盖ListAdpter的行为?

时间:2013-09-05 10:00:01

标签: android bluetooth listadapter

我正在为Android设计一个简单的蓝牙应用程序,我有一个ListActivity 显示我找到的所有设备。

所以我有一个像这样的ListAdapter:

deviceNameListAdapter = new ArrayAdapter<BluetoothDevice>(this,android.R.layout.simple_list_item_1,devices);

并设置为显示。

但是,ListActivity显示设备的地址而不是设备的名称。我猜ListActivity会在显示设备列表时调用设备的.toString()方法中的项目。我只是在想,无论如何我可以改变这种行为? BluetoothDevice类有一个名为.getName()的方法,应该被称为。

干杯!

1 个答案:

答案 0 :(得分:0)

适配器类的示例:

public class AdapterClass extends BaseAdapter {


     private List _list;

     public AdapterDirectories(List list){
          // Constructor with good parameters
          _list = list;
     }

    @Override
    public int getCount() {

        return _list.size();
    }

    @Override
    public Object getItem(int position) {

        return position;
    }

    @Override
    public long getItemId(int position) {

        return position;
    }


    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View view = convertView;
        CellHolder cellHolder = null;
        // get
        if (convertView == null) {
            view = _inflater.inflate(R.layout.list_item, null);
            cellHolder = new CellHolder();
            cellHolder.textTitle = (TextView) view.findViewById(R.id.text_view_title);
            view.setTag(cellHolder);
        }
        else {
            cellHolder = (CellHolder) convertView.getTag();
        }
        // set
        cellHolder.textTitle.setText("");
        return view;
    }

    public class CellHolder {
        public TextView     textTitle;
    }
}

将适配器设置为列表视图:

_listView.setAdapter(_adapter);