我已经下载了一些代码并对其进行了修改。我想用list和unpair按钮在列表视图中显示所有绑定的蓝牙设备。 它现在工作正常。当我点击一个按钮时,我得到了行的编号,但我想在Toast中获取设备的名称。你能帮帮我吗?
public class MainActivity extends Activity implements AdapterView.OnItemClickListener, View.OnClickListener {
private BluetoothAdapter mBtAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ListView list = new ListView(this);
setContentView(list);
mBtAdapter = BluetoothAdapter.getDefaultAdapter();
Set<BluetoothDevice> pairedDevices = mBtAdapter.getBondedDevices();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.row_button, R.id.text) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = super.getView(position, convertView, parent);
View left = row.findViewById(R.id.left);
left.setTag(position);
left.setOnClickListener(MainActivity.this);
View right = row.findViewById(R.id.right);
right.setTag(position);
right.setOnClickListener(MainActivity.this);
return row;
}
};
list.setAdapter(adapter);
list.setOnItemClickListener(this);
if (pairedDevices.size() > 0) {
for(BluetoothDevice bt : pairedDevices)
adapter.add(bt.getName()+ "\n" + bt.getAddress());
}
else {
String noDevices = getResources().getText(R.string.none_paired).toString();
adapter.add(noDevices);
}
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()) {
case R.id.left:
int pos = (Integer) v.getTag();
Toast.makeText(this, "Left Accessory "+v.getTag(), Toast.LENGTH_SHORT).show();
break;
case R.id.right:
Toast.makeText(this, "Right Accessory "+v.getTag(), Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
// TODO Auto-generated method stub
Toast.makeText(this, "Item Click "+position, Toast.LENGTH_SHORT).show();
}
}
答案 0 :(得分:0)
未经测试,但我认为它应该可以使用
更改onItemClick
中的代码:
Toast.makeText(this, "Item Click "+ adapter.getItem(poistion), Toast.LENGTH_SHORT).show();