2015-08-19 2 views
1

Я использую образец Bluetooth Chat для получения некоторых данных Sensor от моего Arduino на моем устройстве Android, поэтому я деактивировал код для отправки данных и изменил код для получения, что я получите полную строку со своими данными Sensor (например: Sensordata1, Sensordata2, Sensordata3, Sensordata4, Sensordata5,), разделите ее на конкретные значения и покажите ее как элемент чата в ListView.Образец Bluetooth Chat - отображать полученные данные в TextView

Вот измененный код в BluetoothChatFragment:

 byte[] readBuf = (byte[]) msg.obj; 
       // construct a string from the valid bytes in the buffer 
       String readMessage = new String(readBuf, 0, msg.arg1); 

       if(readMessage != null && readMessage.length() > 29) { 

        String seperateValues[] = readMessage.split(","); 
        String pressure_1 = seperateValues[0]; 
        String pressure_2 = seperateValues[1]; 
        String pressure_3 = seperateValues[2]; 
        String pressure_4 = seperateValues[3]; 
        String pressure_5 = seperateValues[4]; 

        int pressure_1_int = Integer.parseInt(pressure_1); 
        int pressure_2_int = Integer.parseInt(pressure_2); 
        int pressure_3_int = Integer.parseInt(pressure_3); 
        int pressure_4_int = Integer.parseInt(pressure_4); 
        int pressure_5_int = Integer.parseInt(pressure_5); 

       float pressure_1_float = (Float.parseFloat(pressure_1))/10;       
       float pressure_2_float = (Float.parseFloat(pressure_2))/10; 
       float pressure_3_float = (Float.parseFloat(pressure_3))/10; 
       float pressure_4_float = (Float.parseFloat(pressure_4))/10; 
       float pressure_5_float = (Float.parseFloat(pressure_5))/10; 

        pressure_1 = Float.toString(pressure_1_float); 
        pressure_2 = Float.toString(pressure_2_float); 
        pressure_3 = Float.toString(pressure_3_float); 
        pressure_4 = Float.toString(pressure_4_float); 
        pressure_5 = Float.toString(pressure_5_float); 


      String completeString = pressure_1 + " " + 
      pressure_2 + " " + pressure_3 + " " + pressure_4 + " " + pressure_5; 


        mConversationArrayAdapter.add(completeString); 
        break; 

Это не действительно своего рода способ отображения данных, поэтому я хотел показать 5 значений в отдельных полях TextView ... я вписываюсь в TextView в файле XML (fragment_bluetooth_chat.xml) и называется TextView с:

TextView pressure1 = (TextView) findViewById(R.id.textView1); 
TextView pressure2 = (TextView) findViewById(R.id.textView2); 
TextView pressure3 = (TextView) findViewById(R.id.textView3); 
TextView pressure4 = (TextView) findViewById(R.id.textView4); 
TextView pressure5 = (TextView) findViewById(R.id.textView5); 

Но Android студия не принимает findViewById !? Какая у меня ошибка?

Большое спасибо за помощь!

Вот XML (fragment_bluetooth_chat.xml):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical" > 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/Druck1" 
    android:id="@+id/textView1" 
    android:layout_gravity="center_horizontal" 
    android:textSize="30sp" 
    android:textColor="#575757" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/Druck2" 
    android:id="@+id/textView2" 
    android:layout_gravity="center_horizontal" 
    android:textSize="30sp" 
    android:textColor="#575757" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/Druck3" 
    android:id="@+id/textView3" 
    android:layout_gravity="center_horizontal" 
    android:textSize="30sp" 
    android:textColor="#575757" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/Druck4" 
    android:id="@+id/textView4" 
    android:layout_gravity="center_horizontal" 
    android:textSize="30sp" 
    android:textColor="#575757" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/Druck5" 
    android:id="@+id/textView5" 
    android:layout_gravity="center_horizontal" 
    android:textSize="30sp" 
    android:textColor="#575757" /> 
    </LinearLayout> 
+0

какой метод вы разместили 'findViewById()'? – 0X0nosugar

+0

onCreate() и я переместили объявление (TextView pressure1) в начало – Fred

ответ

0

Добавить TextViews другим "Layout" Просмотров в BluetoothChatFragment:

// Layout Views 
private ListView mConversationView; 
private EditText mOutEditText; 
private Button mSendButton; 
private TextView pressure1, pressure2, pressure3, pressure4, pressure5; 

И связывают TextViews к элементам пользовательского интерфейса в метод 'onViewCreated()':

@Override 
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
    mConversationView = (ListView) view.findViewById(R.id.in); 
    mOutEditText = (EditText) view.findViewById(R.id.edit_text_out); 
    mSendButton = (Button) view.findViewById(R.id.button_send); 
    pressure1 = (TextView) view.findViewById(R.id.textView1); 
    pressure2 = (TextView) view.findViewById(R.id.textView2); 
    pressure3 = (TextView) view.findViewById(R.id.textView3); 
    pressure4 = (TextView) view.findViewById(R.id.textView4); 
    pressure5 = (TextView) view.findViewById(R.id.textView5); 
} 

Обратите внимание, что в этом случае это вид .findViewById() '.

+0

Спасибо большое! Вы сделали мой день! – Fred

+0

Теперь Android Studio принимает findViewById(), но приложение внезапно падает после запуска. – Fred

+0

@Fred. Я думаю, что нужно сделать новый вопрос (потому что это в основном другая проблема) и включать в себя код, а также трассировку стека. – 0X0nosugar

Смежные вопросы