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]);
}
}
}