如何使用onActivityResult方法避免点击按钮后重复startActivityForResult 代码示例
时间: 2024-01-09 22:19:12 浏览: 28
可以在onActivityResult方法中判断requestCode是否为我们需要的值,如果是则执行相应的逻辑,否则不做处理。这样就可以避免重复启动Activity。
示例代码如下:
```
private static final int REQUEST_CODE = 1;
// 启动Activity
Intent intent = new Intent(this, TargetActivity.class);
startActivityForResult(intent, REQUEST_CODE);
// 处理返回结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
// 处理返回结果
}
}
```
相关问题
除了防抖如何避免点击按钮后重复startActivityForResult代码示例
可以通过设置一个标志位来避免重复启动Activity,例如在onActivityResult方法中设置一个标志位,当该标志位为true时,说明已经启动了Activity并且已经得到了结果,此时再次点击按钮就不会再次启动Activity。
示例代码如下:
```
private boolean isStarted = false;
public void onClickButton(View view) {
if (!isStarted) {
isStarted = true;
startActivityForResult(intent, requestCode);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == this.requestCode && resultCode == RESULT_OK) {
// 处理结果
}
isStarted = false;
}
```
Android点击按钮打开蓝牙全部代码
好的,以下是一个完整的示例代码,可以在Android应用程序中使用按钮打开蓝牙:
在AndroidManifest.xml文件中添加以下权限:
```xml
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
```
在您的Activity中,添加以下代码:
```java
public class MainActivity extends AppCompatActivity {
private static final int REQUEST_ENABLE_BT = 1;
private BluetoothAdapter bluetoothAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化蓝牙适配器
bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
// 检查蓝牙是否可用
if (bluetoothAdapter == null) {
// 设备不支持蓝牙
Toast.makeText(this, "设备不支持蓝牙", Toast.LENGTH_SHORT).show();
finish();
return;
}
// 获取按钮并设置点击监听器
Button btnOpenBluetooth = findViewById(R.id.btn_open_bluetooth);
btnOpenBluetooth.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openBluetooth();
}
});
}
private void openBluetooth() {
// 如果蓝牙未开启,则请求用户打开蓝牙
if (!bluetoothAdapter.isEnabled()) {
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
} else {
// 蓝牙已开启
Toast.makeText(this, "蓝牙已打开", Toast.LENGTH_SHORT).show();
}
}
// 处理用户打开蓝牙的结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_ENABLE_BT) {
if (resultCode == RESULT_OK) {
// 用户已打开蓝牙
Toast.makeText(this, "蓝牙已打开", Toast.LENGTH_SHORT).show();
} else {
// 用户未打开蓝牙
Toast.makeText(this, "无法打开蓝牙", Toast.LENGTH_SHORT).show();
}
}
}
}
```
在布局文件中添加一个按钮:
```xml
<Button
android:id="@+id/btn_open_bluetooth"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="打开蓝牙" />
```
请注意,此示例仅适用于打开蓝牙。如果您需要更多蓝牙功能,例如搜索设备或与设备进行配对,请参考Android开发文档或其他教程。