2015-08-19 23 views
1

我正在使用藍牙聊天示例從我的Android設備上的Arduino接收一些傳感器數據,所以我停用了發送數據的代碼並更改了接收代碼,使用我的傳感器數據(如:Sensordata1,Sensordata2,Sensordata3,Sensordata4,Sensordata5)獲取完整的字符串,將其分成特定的值並將其作爲聊天元素顯示給ListView。藍牙聊天示例 - 顯示接收到的數據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; 

這不是,所以我想表明在單一的TextView領域的5個值顯示數據的真有種方法... 我適合的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壓力1)移到頂部 – Fred

回答

0

添加TextViews其他 「佈局視圖」 中BluetoothChatFragment:

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

而且TextViews綁定到UI元素'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