차트 기본 예제는 구했습니다


|         1
|   1         1
| 1                   1
|
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
(1이 선으로 이어지는   (점인데 올래 잘안보여서 1로 썻음))
이런모양으로 x값은 입력받을때마다 증가하게 해놓고
y값만 입력받은 값적용되게  (단 버튼을 눌러야함..


챠트 ==  그려집니다 입력받아서 add 누르면..

tcp통신으로 연결 까지되고 값도 가져옵니다

버튼안누르고 값이 오면 바로 차트를 그리개 할려고하는데..

어떤함수를 쓴느것같기도하고..  어떻게 해야할지 잘모르겟습니다~

도와주세요~~


소스올려 놓을개요   통신도 됨 지금은  
어떻게 하면 바로 통신으로 연결된 값이 입력되서 챠트를 그릴수 있는지좀...

add 버튼안누르고...



  private final static String IP = "192.168.100.40";
 

  private Socket socket;   //소켓
  private InputStream in;  //입력 스트림
  private OutputStream out;  //출력 스트림
 
  private final Handler handler = new Handler();  //핸들러
  private String txtReceive;  // 수신 텍스트
  private GraphicalView mChartView;
  double x= 0;
  double y = 0;
 // @Override
  protected void onRestoreInstanceState(Bundle savedState) {
    super.onRestoreInstanceState(savedState);
    mDataset = (XYMultipleSeriesDataset) savedState.getSerializable("dataset");
    mRenderer = (XYMultipleSeriesRenderer) savedState.getSerializable("renderer");
    mCurrentSeries = (XYSeries) savedState.getSerializable("current_series");
    mCurrentRenderer = (XYSeriesRenderer) savedState.getSerializable("current_renderer");
    mDateFormat = savedState.getString("date_format");
  }
 // @Override
  protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putSerializable("dataset", mDataset);
    outState.putSerializable("renderer", mRenderer);
    outState.putSerializable("current_series", mCurrentSeries);
    outState.putSerializable("current_renderer", mCurrentRenderer);
    outState.putString("date_format", mDateFormat);
    
  }
//  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    current = this;
    setContentView(R.layout.xy_chart);
  //  mX = (EditText) findViewById(R.id.xValue);
    mY = (EditText) findViewById(R.id.yValue);
    
    mAdd = (Button) findViewById(R.id.add);
    mNewSeries = (Button) findViewById(R.id.new_series);
    mNewSeries.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
          String seriesTitle = "Series " + (mDataset.getSeriesCount() + 1);
          XYSeries series = new XYSeries(seriesTitle);
          mDataset.addSeries(series);
          mCurrentSeries = series;
          XYSeriesRenderer renderer = new XYSeriesRenderer();
          mRenderer.addSeriesRenderer(renderer);
          mCurrentRenderer = renderer;
          setSeriesEnabled(true);
    //스레드 생성 2
    (new Thread()
    {
     public void run()
     {
      try{
       connect(IP,4443);
      }catch(Exception e)
      {
       
      }
     }
    }).start();
    }
      //접속
        private void connect(String IP, int port)
        {
         int size;
         byte[] w = new byte[1024];
         txtReceive = "";
         try{ //소켓 접속 3
          socket =  new Socket(IP, port);
          in = socket.getInputStream();
          out = socket.getOutputStream();
          //수신 반복 루프 4
          while(socket != null && socket.isConnected())
          { //데이터 수신 5
           size = in.read(w);
           if(size <= 0) continue;
           txtReceive =  new String(w,0,size,"UTF-8");
           
           handler.post(new Runnable() {
          //  @Override
            public void run() {
             mY.setText(txtReceive);
                    
                    try {
                     // x = Double.parseDouble(mX.getText().toString());
                      x += 1;
                    } catch (NumberFormatException e) {
                      // TODO
                     // mX.requestFocus();
                      return;
                    }
                    try {
                      y = Double.parseDouble(mY.getText().toString());
                    } catch (NumberFormatException e) {
                      // TODO
                      mY.requestFocus();
                      return;
                    }
                    mCurrentSeries.add(x, y);
                   // mX.setText("");
                    mY.setText("");
                   // mX.requestFocus();
                    if (mChartView != null) {
                      mChartView.repaint();                   
                  }}
                });        
            // TODO Auto-generated method stub                          
          }
         }catch(Exception e)
         {
          handler.post(new Runnable() {
           
          // @Override
           public void run() {
            // TODO Auto-generated method stub
            System.out.println("통신에러");
           }
          });
         
         }  
}
    });
  
    mAdd.setOnClickListener(new View.OnClickListener() {
     //double x = 1;
      public void onClick(View v) {
        
        try {
         // x = Double.parseDouble(mX.getText().toString());
          x += 1;
        } catch (NumberFormatException e) {
          // TODO
         // mX.requestFocus();
          return;
        }
        try {
          y = Double.parseDouble(mY.getText().toString());
        } catch (NumberFormatException e) {
          // TODO
          mY.requestFocus();
          return;
        }
        mCurrentSeries.add(x, y);
       // mX.setText("");
        mY.setText("");
       // mX.requestFocus();
        if (mChartView != null) {
          mChartView.repaint();
        }
      }
    });
  }
 public static void showDialog(final Activity activity, String title, String text)
 {
  AlertDialog.Builder ad = new AlertDialog.Builder(activity);
  ad.setTitle(title);
  ad.setMessage(text);
  ad.setPositiveButton("OK", new DialogInterface.OnClickListener() {
   @Override
   public void onClick(DialogInterface dialog, int whichButton) {
    // TODO Auto-generated method stub
    activity.setResult(Activity.RESULT_OK);
   }
  });
  ad.create();
  ad.show();
 }
 // @Override
  protected void onResume() {
    super.onResume();
    if (mChartView == null) {
      FrameLayout layout = (FrameLayout) findViewById(R.id.chart);
      mChartView = ChartFactory.getLineChartView(this, mDataset, mRenderer);
      layout.addView(mChartView, new LayoutParams(LayoutParams.FILL_PARENT,
          LayoutParams.FILL_PARENT));
      boolean enabled = mDataset.getSeriesCount() > 0;
      setSeriesEnabled(enabled);
    } else {
      mChartView.repaint();
    }
  }
  private void setSeriesEnabled(boolean enabled) {
   // mX.setEnabled(enabled);
 //  mX.setEnabled(enabled);
   mY.setEnabled(enabled);
    mAdd.setEnabled(enabled);
  }
}