2013-06-05 53 views
5

Tôi đã tạo biểu đồ từ cơ sở dữ liệu của tôi với androidplot, nhưng khi tôi đặt lại cơ sở dữ liệu bằng nút, cập nhật dosnt đồ thị, làm cách nào để cập nhật biểu đồ mà không tạo lại hoạt động?Làm thế nào để cập nhật biểu đồ trong androidplot

public class Overview extends Activity { 
Number[] seriesOfNumbers; 
private XYPlot mySimpleXYPlot; 
// double totalprofitd; 
private BetsDbAdapter dbHelper; 
TextView NBtext; 
TextView TOtext; 
TextView TPtext; 
TextView ROItext; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.c_overview); 

    dbHelper = new BetsDbAdapter(this); 
    TOtext = (TextView) findViewById(R.id.turnover); 
    TPtext = (TextView) findViewById(R.id.totalprofit); 
    NBtext = (TextView) findViewById(R.id.numberOfBet); 
    ROItext = (TextView) findViewById(R.id.roi); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.android_tab_layout, menu); 
    return true; 
} 

public void resetClick(View v) { 
    dbHelper.open(); 
    dbHelper.deleteDatabase(); 
    dbHelper.close(); 
    CalculateProfit(); 
    graph(); 
} 

@Override 
protected void onResume() { 
    // TODO Auto-generated method stub 
    super.onResume(); 
    CalculateProfit(); 
    graph(); 
} 

public void CalculateProfit() { 
    dbHelper.open(); 
    List<String> tip = dbHelper.getTip(); 
    List<String> betamount = dbHelper.getBetAmount(); 
    ArrayList<String> sbodds = dbHelper.getSBodds(); 
    dbHelper.close(); 

    int NumberOfBets = tip.size(); 
    double turnover = 0; 
    double ROI = 0; 
    double totalprofit = 0; 
    double profit = 0; 
    seriesOfNumbers = new Number[NumberOfBets]; 
    for (int i = 0; i < NumberOfBets; i++) { 
     String WLV = tip.get(i); 
     String arrpct[] = WLV.split(" ", 2); 
     String WLV1 = arrpct[0]; 

     if (WLV1.equals("W")) { 
      profit = Double.parseDouble(betamount.get(i).replaceAll(",", 
        ".")) 
        * (Double.parseDouble(sbodds.get(i)) - 1); 
     } 

     else if (WLV1.equals("L")) { 
      profit = -Double.parseDouble(betamount.get(i).replaceAll(",", 
        ".")); 
     } else { 
      profit = 0; 
     } 
     //Add total turnover 
     turnover += Double.parseDouble(betamount.get(i).replaceAll(",", ".")); 
     //Add total profit 
     totalprofit += profit; 
     //For the graph 
     seriesOfNumbers[i] = totalprofit; 
    } 
    ROI = ((turnover + totalprofit)/turnover) * 100; 
    TPtext.setText(new DecimalFormat("##.##").format(totalprofit)); 
    TOtext.setText(new DecimalFormat("##.##").format(turnover)); 
    NBtext.setText(Integer.toString(NumberOfBets)); 
    ROItext.setText(new DecimalFormat("##.##").format(ROI)); 
} 

public void graph() { 
    dbHelper.open(); 
    // initialize our XYPlot reference: 
    mySimpleXYPlot = (XYPlot) findViewById(R.id.mySimpleXYPlot); 

    // Turn the above arrays into XYSeries': 
    XYSeries series1 = new SimpleXYSeries(Arrays.asList(seriesOfNumbers), 
    // SimpleXYSeries takes a List so turn our array into a list 
      SimpleXYSeries.ArrayFormat.Y_VALS_ONLY, 
      // Y_VALS_ONLY means use the element index as the x value 
      "Series1"); // Set the display title of the series 

    // Create a formatter to use for drawing a series using 
    // LineAndPointRenderer: 
    LineAndPointFormatter series1Format = new LineAndPointFormatter(
      Color.rgb(0, 200, 0), // line color 
      null, // point color 
      Color.rgb(0, 200, 0)); // fill color (none) 

    // add a new series' to the xyplot: 
    mySimpleXYPlot.addSeries(series1, series1Format); 

    // reduce the number of range labels 
    mySimpleXYPlot.setTicksPerRangeLabel(3); 

    // by default, AndroidPlot displays developer guides to aid in laying 
    // out your plot. 
    // To get rid of them call disableAllMarkup(): 
    mySimpleXYPlot.disableAllMarkup(); 
    dbHelper.close(); 
} 

}

Dont biết nếu quan trọng của nó, nhưng đây là của tôi:

c_overview.xml

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

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" > 

      <TextView 
       android:id="@+id/Profit_text" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:ems="6" 
       android:text="Profit:" /> 

      <TextView 
       android:id="@+id/ROI_text" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:ems="6" 
       android:text="ROI:" /> 

      <TextView 
       android:id="@+id/Bet_Counter_text" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:ems="6" 
       android:text="No. of Bets:" /> 

      <TextView 
       android:id="@+id/Turnover_text" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:ems="6" 
       android:text="Turnover:" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="130dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="0.75" 
      android:orientation="vertical" > 

      <TextView 
       android:id="@+id/totalprofit" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:ems="10" 
       android:text="total profit" /> 

      <TextView 
       android:id="@+id/roi" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:ems="10" 
       android:text="Return Of Interest" /> 

      <TextView 
       android:id="@+id/numberOfBet" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:text="number of bets" /> 

      <TextView 
       android:id="@+id/turnover" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:ems="10" 
       android:text="Turnover" /> 
     </LinearLayout> 

     <Button 
      android:id="@+id/reset" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:onClick="resetClick" 
      android:text="Reset" /> 

    </LinearLayout> 

    <com.androidplot.xy.XYPlot 
      android:id="@+id/mySimpleXYPlot" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_marginTop="10px" 
      android:layout_marginLeft="10px" 
      android:layout_marginRight="10px" 
      title="A Simple XYPlot Example"/> 



</LinearLayout> 

Trả lời

13

tôi thấy 2 chức năng sử dụng: rõ ràng và vẽ lại, vì vậy bây giờ nó đang hoạt động:

CalculateProfit(); 
mySimpleXYPlot.clear(); 
graph();   
mySimpleXYPlot.redraw(); 
0

Biểu đồ Android sử dụng Hướng dẫn AndroidPlot

Trong Biểu đồ Android này bằng cách sử dụng Hướng dẫn AndroidPlot, hãy để chúng tôi tìm hiểu cách tạo biểu đồ trong ứng dụng Android bằng thư viện AndroidPlot. Tạo một biểu đồ trong Android được thực hiện đơn giản bởi AndroidPlot, chỉ cần chúng ta cần biết về vài lớp. Làm thế nào để vượt qua giá trị cho những lớp học để vẽ biểu đồ và sau đó như thế nào ...

Read more: http://latest-tutorial.com/2014/03/12/android-chart-using-androidplot-tutorial/

0

Trước khi u bắt đầu vẽ đồ thị chỉ cần sử dụng chức năng plot.clear sau(); Và cũng xóa chuỗi plot.removeSeries (xLabels [i]); trong đó xLabels là giá trị trục x

Các vấn đề liên quan