2015-12-19 2 views
0

Я создал простое приложение bluetooth. Как я могу поместить информацию о сопряженном устройстве, таком как имя и адрес, когда я нажимаю на список и сохраняю его в массиве?Как получить данные Bluetooth в списке?

public class BluetoothConnection extends Activity { 

Button listbt; 
private BluetoothAdapter BA; 
private Set<BluetoothDevice> pairedDevices; 
ListView lv; 
ArrayList<String> list = new ArrayList<String>(); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_bluetooth); 

    listbt=(Button)findViewById(R.id.listbutton); 

    BA = BluetoothAdapter.getDefaultAdapter(); 
    lv = (ListView)findViewById(R.id.listView); 

} 

public void list(View v){ 
    pairedDevices = BA.getBondedDevices(); 

    for(BluetoothDevice bt : pairedDevices) 
    { 
     list.add(bt.getName() + "\n" + bt.getAddress()); 
    } 
    Toast.makeText(getApplicationContext(),"Showing Paired Devices",Toast.LENGTH_SHORT).show(); 

    final ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1, list); 
    lv.setAdapter(adapter); 
} 
} 
+0

С какой проблемой вы столкнулись сейчас. Объясните – Amy

+0

прямо в этом списке (null); конец onCreate(); – Amy

+0

Я не сталкиваюсь с проблемой. то, что я хочу достичь, - это получить значение (парное имя и адрес устройства) и сохранить его в массиве при щелчке по списку. – Dave

ответ

2

Попробуйте это:

lv.setOnItemClickListener(mDeviceClickListener); 

mDeviceClickListener декларации.

private OnItemClickListener mDeviceClickListener = new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> av, View v, int arg2, long arg3) { 
      // Get the device MAC address, which is the last 17 chars in the View 
      String info = ((TextView) v).getText().toString(); 
      String address = info.substring(info.length() - 17); 
     } 
    };