- Forum-Beiträge: 45
08.06.2017, 15:16:34 via Website
08.06.2017 15:16:34 via Website
Hi,
ich habe eine Problem mit der GraphView. Ich lade aus einer SQL-Datenbank Werte. Einen int-wert für die y-Achse und einen String für die Uhrzeit als HH:mm:ss.SSS. Wenn ich nun den String in ein Date-Objekt umwandle und mir in der x-Achse anzeigen lasse, bekomme ich immer den 01.01.70. Ich will eben kein Datum, sondern nur die Uhrzeit.
Hat jemand eine Idee wie ich das ändern kann?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_messung);
Button button_restart_activity = (Button) findViewById(R.id.button_refresh);
button_restart_activity.setOnClickListener(this);
graph = (GraphView) findViewById(R.id.graph);
series.setDrawDataPoints(true);
/*
series = new LineGraphSeries<>(new DataPoint[] {
new DataPoint(0, 0)
});
*/
// set manual X bounds
graph.getViewport().setYAxisBoundsManual(true);
graph.getViewport().setMinY(0);
graph.getViewport().setMaxY(1500);
timeNow = Calendar.getInstance();
//format.format(timeNow.getTime());
graph.getViewport().setXAxisBoundsManual(true);
graph.getViewport().setMinX(0);
graph.getViewport().setMaxX(0.1);
// enable scaling and scrolling
graph.getViewport().setScalable(true);
graph.getViewport().setScalableY(true);
graph.getViewport().setScrollable(true);
graph.getViewport().setScrollableY(true);
//graph.getGridLabelRenderer().setHorizontalAxisTitle("Zeit");
graph.getGridLabelRenderer().setVerticalAxisTitle("Paketlänge");
graph.getLegendRenderer().setVisible(true);
graph.getLegendRenderer().setWidth(375);
graph.getLegendRenderer().setMargin(60);
graph.getLegendRenderer().setAlign(LegendRenderer.LegendAlign.TOP);
// set date label formatter
graph.getGridLabelRenderer().setLabelFormatter(new DateAsXAxisLabelFormatter(getApplicationContext()));
graph.getGridLabelRenderer().setNumHorizontalLabels(3); // only 4 because of the space
graph.getGridLabelRenderer().setHumanRounding(false);
Timer t1 = new Timer();
t1.schedule(new TimerTask() {
@Override
public void run() {
getData();
}
}, 0, 1500); //alle 1,5 Sekunden...
}
protected void addPoints() {
try {
JSONObject jsonObj = new JSONObject(myJSON);
werte = jsonObj.getJSONArray(TAG_RESULTS);
//Gibt Resourcen frei
graph.removeSeries(series);
for (int i = 0; i < werte.length(); i++) {
JSONObject c = werte.getJSONObject(i);
int id = c.getInt(TAG_ID);
String zeit = c.getString(TAG_ZEIT);
String typ = c.getString(TAG_TYP);
int laenge = c.getInt(TAG_LAENGE);
try {
xIntRaw.setTime(format.parse(zeit));// all done
}catch(ParseException e){
e.printStackTrace();
}
//long xInt = ((xIntRaw.getTimeInMillis()/10)-(timeNow.getTimeInMillis()/10));
Date xInt = xIntRaw.getTime();
int yInt = laenge;
points.add(new DataPoint(xInt,yInt));
}
dbPoint = points.toArray(new DataPoint[points.size()]);
series = new LineGraphSeries<>(dbPoint);
graph.addSeries(series);
series.setTitle("Paketlänge/Zeit");
} catch (JSONException e) {
e.printStackTrace();
}
}
public void getData() {
class GetDataJSON extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
DefaultHttpClient httpclient = new DefaultHttpClient(new BasicHttpParams());
//HttpPost httppost = new HttpPost("http://10.10.0.1/getter.php");
HttpPost httppost = new HttpPost("http://s466958426.online.de/basti/getter1.php");
// Depends on your web service
httppost.setHeader("Content-type", "application/json");
InputStream inputStream = null;
String result = null;
try {
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
inputStream = entity.getContent();
// json is UTF-8 by default
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
result = sb.toString();
} catch (Exception e) {
// Oops
} finally {
try {
if (inputStream != null) inputStream.close();
} catch (Exception squish) {
}
}
return result;
}
@Override
protected void onPostExecute(String result) {
myJSON = result;
addPoints();
}
}
GetDataJSON g = new GetDataJSON();
g.execute();
}
Viele Grüße Basti
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.