如何在回调中更改按钮的文本?(安卓)

巴特

这是我的应用程序:它执行蓝牙扫描,并且扫描功能在找到设备时会回调。我想将特定按钮的文本从“搜索”更改为“连接”,因为它找到了特定的设备(可以通过其设备名称识别出该设备)。

但是,该按钮在回调范围内不可用。

有什么办法吗?我认为这纯粹是一个范围问题,对这种事情我几乎没有经验。

代码 :

 Context context;
    context = this;

    update_str = "";

    Button ConnectButton = (Button) findViewById(R.id.Connect);
    ConnectButton.setText("Waiting for device to be found");

    Button ScanButton = (Button) findViewById(R.id.Scan);

    ScanButton.setOnClickListener(new View.OnClickListener() {
                                      public void onClick(View v) {
                                          btAdapter.startLeScan(leScanCallback);
                                      }
                                  });

    BluetoothAdapter.LeScanCallback leScanCallback = new BluetoothAdapter.LeScanCallback() {
        public void onLeScan(final BluetoothDevice device, final int rssi, final byte[] scanRecord) {

            update_str = update_str.concat(" " + device.getName());
            ((TextView)findViewById (R.id.text)).setText (update_str);
            nom_device = device.getName();
            if (nom_device=="bill_gates"){

                context.ConnectButton.setText(nom_device);

                context.ConnectButton.setOnClickListener(new View.OnClickListener() {

                    public void onClick(View v) {
                        BluetoothGatt bluetoothGatt = device.connectGatt(getApplicationContext(), false, context.btleGattCallback);
                    }

            });
        }

        }
    };

编译器错误日志:

C:\Code\Grizz\app\src\main\java\com\grizz\grizzmvp\MainActivity.java
Error:(84, 28) error: cannot find symbol variable ConnectButton
Error:(89, 117) error: cannot find symbol variable btleGattCallback
Error:(86, 28) error: cannot find symbol variable ConnectButton
Note: C:\Code\Grizz\app\src\main\java\com\grizz\grizzmvp\MainActivity.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Error:Execution failed for task ':app:compileDebugJava'.
> Compilation failed; see the compiler error output for details.
Information:BUILD FAILED
Information:Total time: 1.381 secs
Information:4 errors
Information:0 warnings
Information:See complete output in console

巴西

当在方法主体中定义匿名内部类时,可以从内部类内部访问在该方法范围内声明为final的所有变量。对于标量值,一旦将其赋值,最终变量的值就无法更改。对于对象值,引用不能更改。这允许Java编译器在运行时“捕获”变量的值,并将副本存储为内部类中的字段。一旦外部方法终止并删除了其堆栈框架,原始变量就消失了,但是内部类的私有副本仍保留在该类自己的内存中。

final Button ConnectButton = (Button) findViewById(R.id.Connect);
ConnectButton.setText("Waiting for device to be found");

final Button ScanButton = (Button) findViewById(R.id.Scan);
ScanButton.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        btAdapter.startLeScan(leScanCallback);
    }
});

BluetoothAdapter.LeScanCallback leScanCallback = new BluetoothAdapter.LeScanCallback() {
    public void onLeScan(final BluetoothDevice device, final int rssi, final byte[] scanRecord) {
        update_str = update_str.concat(" " + device.getName());
        ((TextView)findViewById (R.id.text)).setText (update_str);
        nom_device = device.getName();
        if (nom_device.equals("bill_gates")){

            ConnectButton.setText(nom_device);
            ConnectButton.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    BluetoothGatt bluetoothGatt = device.connectGatt(getApplicationContext(), false, context.btleGattCallback);
                }
            });
        }
    }
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在ScrollView中的ImageView上动态添加按钮?安卓。Xamarin

来自分类Dev

如果按钮已经具有shape_layout,如何在按下按钮时更改其颜色?安卓

来自分类Dev

如何不拉伸表格中按钮的图像 | 安卓

来自分类Dev

如何在“操作”选项卡中回调按钮

来自分类Dev

如何在AngularJS中更改按钮的文本?

来自分类Dev

如何在Eclipse中混淆代码?(安卓)

来自分类Dev

如何在片段中显示对话| 安卓

来自分类Dev

如何使按钮文本到其底部边缘的空间与文本长度无关?(安卓)

来自分类Dev

如何显示文字和按钮?(安卓)

来自分类Dev

编辑文本安卓| 按按钮输入文本

来自分类Dev

如何在不使用id的情况下操作按钮的内容;安卓?

来自分类Dev

如何在“近期任务”列表上更改应用程序名称?-安卓

来自分类Dev

如何从声音中播放数组?- 安卓

来自分类Dev

如何在按钮悬停属性中更改文本颜色

来自分类Dev

如何在Android中更改单选按钮的文本颜色?

来自分类Dev

如何在Ext js中更改按钮文本

来自分类Dev

如何在Unity中更改按钮的文本和图像颜色?

来自分类Dev

如何在Android按钮中动态更改文本颜色

来自分类Dev

如何在Android中更改按钮的文本背景颜色?

来自分类Dev

如何在UIActionSheet中更改文本按钮的颜色?

来自分类Dev

Swift /如何在Xib文件中更改按钮文本的颜色

来自分类Dev

如何在工具栏按钮中更改文本?

来自分类Dev

如何在Ionic Framework中更改按钮的颜色和文本?

来自分类Dev

如何在其动作回调中禁用自定义DataTables按钮?

来自分类Dev

如何在Java中创建回调

来自分类Dev

如何在课程中列出回调

来自分类Dev

如何在JS中回调函数

来自分类Dev

如何在Unity中通过在手机屏幕上轻按一下即可更改相机?(安卓)

来自分类Dev

Python Tkinter:如何在<Destroy>事件回调中从ScrolledText小部件获取文本?

Related 相关文章

  1. 1

    如何在ScrollView中的ImageView上动态添加按钮?安卓。Xamarin

  2. 2

    如果按钮已经具有shape_layout,如何在按下按钮时更改其颜色?安卓

  3. 3

    如何不拉伸表格中按钮的图像 | 安卓

  4. 4

    如何在“操作”选项卡中回调按钮

  5. 5

    如何在AngularJS中更改按钮的文本?

  6. 6

    如何在Eclipse中混淆代码?(安卓)

  7. 7

    如何在片段中显示对话| 安卓

  8. 8

    如何使按钮文本到其底部边缘的空间与文本长度无关?(安卓)

  9. 9

    如何显示文字和按钮?(安卓)

  10. 10

    编辑文本安卓| 按按钮输入文本

  11. 11

    如何在不使用id的情况下操作按钮的内容;安卓?

  12. 12

    如何在“近期任务”列表上更改应用程序名称?-安卓

  13. 13

    如何从声音中播放数组?- 安卓

  14. 14

    如何在按钮悬停属性中更改文本颜色

  15. 15

    如何在Android中更改单选按钮的文本颜色?

  16. 16

    如何在Ext js中更改按钮文本

  17. 17

    如何在Unity中更改按钮的文本和图像颜色?

  18. 18

    如何在Android按钮中动态更改文本颜色

  19. 19

    如何在Android中更改按钮的文本背景颜色?

  20. 20

    如何在UIActionSheet中更改文本按钮的颜色?

  21. 21

    Swift /如何在Xib文件中更改按钮文本的颜色

  22. 22

    如何在工具栏按钮中更改文本?

  23. 23

    如何在Ionic Framework中更改按钮的颜色和文本?

  24. 24

    如何在其动作回调中禁用自定义DataTables按钮?

  25. 25

    如何在Java中创建回调

  26. 26

    如何在课程中列出回调

  27. 27

    如何在JS中回调函数

  28. 28

    如何在Unity中通过在手机屏幕上轻按一下即可更改相机?(安卓)

  29. 29

    Python Tkinter:如何在<Destroy>事件回调中从ScrolledText小部件获取文本?

热门标签

归档