1

I have a fragment (Fragment2) that receives temperature value from other devices with Bluetooth. I want to draw real time graph of temperature vs time.

Temperature values are stored in form of StringBuilder. Ex-:

{temp[0]=20, temp[1]=30,temp[2]=34,...

The temperature value has to be StringBuilder. However, draw graph method requires double values like:

private void addEntry() {
         series.appendData(new DataPoint(lastX++, RANDOM.nextDouble() * 10d), true, 10);
       }

y value has to be double. How should I solve this problem?

My codes:

public class Fragment2 extends Fragment {

    private View convertView;

    TextView incomingMessages;
    StringBuilder messages;
    StringBuilder [] temp = new StringBuilder[1000];
    Handler mHandler = new Handler();
    int LastPointX=0;
     int lasty;
     int x=0;
     int count=1000;

    LineGraphSeries<DataPoint> series;
    int index=0;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        if(convertView==null){
            convertView=inflater.inflate(R.layout.fragment_fragment2, container, false);
            incomingMessages= (TextView) convertView.findViewById(R.id.text);
            messages =new StringBuilder();
            LocalBroadcastManager.getInstance(getActivity()).registerReceiver(mReceiver, new IntentFilter("incomingMessage"));
        }
        return convertView;
    }
    BroadcastReceiver mReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String text=intent.getStringExtra("theMessage");
            messages.append(text+"\n");
            incomingMessages.setText(messages);
            temp[index]= new StringBuilder(messages);
            Log.d("deneme", "message:"+messages+"\n"+"temp"+temp[index]);
            index++;

            messages.delete(0, messages.length());
            Log.d("temp0",temp[0]+"temp1"+temp[1]+"\n"+"temp2"+temp[2]);
        }
    }
}
rushi
  • 142
  • 1
  • 12
CKocar
  • 566
  • 9
  • 25
  • `temp[index]= new StringBuilder(messages);`, why is this saved as StringBuilder array and not as double array? Can you give an example `message`? – rushi Jul 12 '18 at 05:43
  • because message value Stringbuilder. Message comming for example 34 my app show this number and message value equal to temp[i] value so i save message value at temperature value. – CKocar Jul 12 '18 at 05:46
  • if i change to double i dont use this code:messages.append(text+"\n"); incomingMessages.setText(messages); temp[index]= new StringBuilder(messages); – CKocar Jul 12 '18 at 05:47
  • You can convert double to a string and append it to message. Ex- `String valueString = 12.32 + "" // => "12.32"` – rushi Jul 12 '18 at 05:50
  • So, how can i draw temp[0],temp[1] value it will be double, how can i getting and draw with temp[i] values ? – CKocar Jul 12 '18 at 05:52
  • I tried with this type but i have error null object – CKocar Jul 12 '18 at 05:53

0 Answers0