Есть такой кусочек кода. По bluetooth я получаю строку с двумя переменными, разделяю их по пайпу, потом каждую переменную по отдельности показываю на экране, все прекрасно работает. Но как видите, я пытаюсь использовать teta=Integer.parseInt(var[0]); для того, чтобы повернуть ImageView trailer. Хотя setRotation вроде float просит, но и int у меня кушает хорошо. int teta; объявлена ранее
BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String text = intent.getStringExtra("theMessage");
TextView fi_text = (TextView)findViewById(R.id.fi_text);
TextView teta_text = (TextView)findViewById(R.id.teta_text);
String var[]=text.split("\\|");
teta_text.setText(var[0]); //teta значение с bt
teta=Integer.parseInt(var[0]);
fi_text.setText(var[1]); //fi значение с bt
trailer.setRotation(teta);
}
};
Я уверен, что проблема именно в этом, и что я неправильно пользуюсь этой функцией) Как я могу сделать, чтобы int переменную можно было здесь использовать и чтобы приложение не падало?
Использую parseInt по причине того, что нашел такую штуку и она работает int i = Integer.parseInt("234");. А как с переменной работать не знаю, не нашел ничего нужного
И все-таки да, виной всему кракозябры. В любом случае, ответ получен, спасибо за помощь.
Поскольку проблема оказалась в том, что по bluetooth каналу мне приходили кракозябры, их было хорошо видно в логах и они всегда стояли впереди и в конце сообщения, количество их не изменялось, то я просто перед отправкой на другое активити, где происходит дальнейшая обработка этих данных, удалил эти кракозябры функцией substring.
while (true) {
// Read from the InputStream
try {
bytes = mmInStream.read(buffer);
String incomingMessage = new String(buffer, 0, bytes);
Log.d(TAG, "InputStream: " + incomingMessage);
Intent incomingMessageIntent = new Intent("incomingMessage");
incomingMessageIntent.putExtra("theMessage", incomingMessage.substring(2, incomingMessage.length()-1));
//удаляю кракозябры
LocalBroadcastManager.getInstance(mContext).sendBroadcast(incomingMessageIntent);
} catch (IOException e) {
Log.e(TAG, "write: Error reading Input Stream. " + e.getMessage() );
break;
}
}
Продвижение своими сайтами как стратегия роста и независимости