Android 如何将蓝牙的两个输入值分开并在不同的文本视图中显示
你能建议我如何将通过蓝牙从Arduino获得的两个值进行分割吗。我正在测量两个传感器,其中一个我加了数字10000,所以现在我得到了终端中的值,比如540 10025,540 10024,。。。。。 我在一个传感器上增加了10000个,这样更容易将它们分开。 现在我想在不同的文本视图中显示这两个数字,并从一个中删除10000个 这就是我在TextView上获取号码的方式Android 如何将蓝牙的两个输入值分开并在不同的文本视图中显示,android,bluetooth,textview,arduino,Android,Bluetooth,Textview,Arduino,你能建议我如何将通过蓝牙从Arduino获得的两个值进行分割吗。我正在测量两个传感器,其中一个我加了数字10000,所以现在我得到了终端中的值,比如540 10025,540 10024,。。。。。 我在一个传感器上增加了10000个,这样更容易将它们分开。 现在我想在不同的文本视图中显示这两个数字,并从一个中删除10000个 这就是我在TextView上获取号码的方式 public class ArduinoReceiver extends BroadcastReceiver {
public class ArduinoReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String data = null;
final int dataType = intent.getIntExtra(AmarinoIntent.EXTRA_DATA_TYPE, -1);
if (dataType == AmarinoIntent.STRING_EXTRA){
data = intent.getStringExtra(AmarinoIntent.EXTRA_DATA);
if (data != null){
mValueTV.setText(data + "°");
alarm();
}
....
如果我理解正确,您通过同一广播接收器接收两种不同类型的整数-一种低于10000,另一种高于10000。您希望在两个不同的文本视图中显示它们。代码应该如下所示
data = intent.getStringExtra(AmarinoIntent.EXTRA_DATA);
if (data != null)
{
int value = Integer.parseInt(data);
if (value >= 10000)
{
// put in one text view after substracting 10,000
firstTextView.setText(Interger.toString(value - 10000) + "°");
}
else
{
// put in the second TextView
secondTextView.setText(data + "°");
}
}
它显示secondTextView,但当涉及到firstTextView时,它会崩溃。我收到消息:在LogCat中接收广播时出错。如果我试图在一台电视上播放它,它会起作用。你能分享你的logcat消息吗?08-20 11:48:33.600:E/AndroidRuntime(8760):java.lang.RuntimeException:接收广播意图时出错{act=amarino.Intent.action.RECEIVED flg=0x10(有附加项)}在com.example.prototipmbv.main活动中$ArduinoReceiver@42f665e8The问题是我得到了浮点数,然后函数parseInt崩溃了。太好了!将ParseInt()与try-catch块一起使用可以避免这种情况。