带有两个按钮的Android listview
我下载了一些代码并对其进行了修改。我想在一个带有配对和取消配对按钮的列表视图中显示所有绑定的蓝牙设备。 现在还可以。当我点击一个按钮时,我得到了行的编号,但我想得到Toast中设备的名称。你能帮我一下吗带有两个按钮的Android listview,android,Android,我下载了一些代码并对其进行了修改。我想在一个带有配对和取消配对按钮的列表视图中显示所有绑定的蓝牙设备。 现在还可以。当我点击一个按钮时,我得到了行的编号,但我想得到Toast中设备的名称。你能帮我一下吗 public class MainActivity extends Activity implements AdapterView.OnItemClickListener, View.OnClickListener { private BluetoothAdapter mBtA
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();
}
}
公共类MainActivity扩展活动实现AdapterView.OnItemClickListener、View.OnClickListener{
私人蓝牙适配器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
ListView列表=新的ListView(此);
setContentView(列表);
mBtAdapter=BluetoothAdapter.getDefaultAdapter();
Set pairedDevices=mBtAdapter.getBondedDevices();
ArrayAdapter=新的ArrayAdapter(此,R.layout.row_按钮,R.id.text){
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图行=super.getView(位置、转换视图、父级);
左视图=row.findViewById(R.id.left);
左。设置标签(位置);
left.setOnClickListener(MainActivity.this);
视图右侧=row.findViewById(R.id.right);
右。设置标签(位置);
right.setOnClickListener(MainActivity.this);
返回行;
}
};
list.setAdapter(适配器);
list.setOnItemClickListener(此);
如果(pairedDevices.size()>0){
用于(蓝牙设备bt:pairedDevices)
add(bt.getName()+“\n”+bt.getAddress());
}
否则{
String NodeDevices=getResources().getText(R.String.none_paired).toString();
适配器。添加(节点设备);
}
}
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
开关(v.getId()){
案例R.id.左:
int pos=(整数)v.getTag();
Toast.makeText(这个“左附件”+v.getTag(),Toast.LENGTH_SHORT.show();
打破
案例R.id.右侧:
Toast.makeText(这个“右附件”+v.getTag(),Toast.LENGTH_SHORT.show();
打破
违约:
打破
}
}
@凌驾
public void onItemClick(AdapterView父视图、视图v、整型位置、长id){
//TODO自动生成的方法存根
Toast.makeText(此“项单击”+位置,Toast.LENGTH_SHORT).show();
}
}
未测试,但我认为它应该可以工作
在onItemClick
中更改代码:
Toast.makeText(this, "Item Click "+ adapter.getItem(poistion), Toast.LENGTH_SHORT).show();
未测试,但我认为它应该可以工作 在
onItemClick
中更改代码:
Toast.makeText(this, "Item Click "+ adapter.getItem(poistion), Toast.LENGTH_SHORT).show();
尝试
adapter.getItem(position)
你能把它复制到下面的代码中吗。我不知道我必须在哪里包含它。请尝试adapter.getItem(position)
将它复制到下面的代码中。我不知道我必须在哪里包含它。请尝试adapter.getItem(position)
将它复制到下面的代码中。我不知道我必须把它包括在哪里。它不起作用。但是谢谢你的回答。好心的问候祝酒词里有什么意思?它不起作用。但是谢谢你的回答。好心的问候祝酒词里有什么意思?它不起作用。但是谢谢你的回答。很荣幸祝酒词里有什么意思?