所以我正在处理一些朋友离开我的代码(我对这些东西知之甚少)并且对Buttons和ImageButtons有疑问;
此代码适用于要求您点击“连接”的应用。按钮进入蓝牙设备列表。选择后,您将返回主屏幕,按钮现在显示“断开连接”。
基本上,我想要做的是将它从基于文本的按钮更改为图像按钮,这样我就可以拥有蓝牙图标(黑色),并在连接时更改为连接的蓝牙图标(白色)。
我有图标,我理解典型按钮的基本工作方式,但这段代码对我来说有点多了。任何帮助将不胜感激!
我附上了java的初始样本以供参考。 btnConnectDisconnect是我要替换的按钮的名称。
// Handler Disconnect & Connect button
btnConnectDisconnect.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!mBtAdapter.isEnabled()) {
Log.i(TAG, "onClick - BT not enabled yet");
Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableIntent, REQUEST_ENABLE_BT);
} else if (btnConnectDisconnect.getText().equals("Connect")) {
//Connect button pressed, open DeviceListActivity class, with popup windows that scan for devices
Intent newIntent = new Intent(UartActivity.this, DeviceListActivity.class);
startActivityForResult(newIntent, REQUEST_SELECT_DEVICE);
}
else if (btnConnectDisconnect.getText().equals("Disconnect")) {
//unpair
System.out.println("Disconnecting from peripheral");
pDeviceAddress = null;
editor.remove("address");
editor.commit();
System.out.println("Currently saved address: " + prefs.getString("address", null));
System.out.println("Currently saved address check: " + pDeviceAddress);
//disconnect from service
Thread thread = new Thread() {
@Override
public void run() {
try {
sleep(50);
mService.disconnect();
System.out.println("Disconnecting from service...");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
thread.start();
if(mService == null){
System.out.println("Service disconnected!");
} else System.out.println("Service connected!");
答案 0 :(得分:0)
根据代码,我可以看到按钮的名称是btnConnectDisconnect
。因此,您可以进入放置此按钮的XML文件,并首先将按钮标记(<Button .../>
)替换为<ImageButton..../>
。然后,您可以将android:src="@drawable/name_of_drawable"
添加到ImageButton标记,以设置您希望ImageButton具有的图像。然后返回代码并将btnConnectDisconnect
的类型从Button
更改为ImageButton
。这可以让您到达目的地,而无需触摸OnClickListener中的代码。
希望这有帮助!
答案 1 :(得分:0)
要获得理想的行为,您需要做一些事情。
在Java文件中将类型从Button更改为ImageButton(上面发布)
使用以下内容在res / drawable目录中创建一个新的XML文件(btn_bluetooth.xml),确保替换图像引用:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_selected="true"
android:drawable="@drawable/BLUETOOTH_CONNECTED_IMAGE_REFERENCE"
/>
<item
android:state_selected="false"
android:drawable="@drawable/BLUETOOTH_DISCONNECTED_IMAGE_REFERENCE""
/>
</selector>
在XML布局文件中将类型从Button更改为ImageButton(通常在Java文件的onCreate或onCreateView方法中引用(上面发布)
建立或失去蓝牙连接时,只需使用true或false调用btnConnectDisconnect.setEnabled()