2017-01-02 1 views
1

Android Studio의 그래프보기에서 데이터 포인트의 탭 리스너를 추가하고 싶습니다.데이터 포인트에 탭 수신기를 추가하는 방법은 무엇입니까?

내 Java 코드에 다음과 같은 문제가 있습니다. 최종 코드 행에서 get Activity() 메소드를 해결할 수 없습니다.

내 문제를 해결할 수 있도록 도와주세요.

여기 내 코드입니다 :

package com.example.graph; 

import android.content.Context; 
import android.graphics.Color; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.Toast; 
import android.app.Activity; 

import com.jjoe64.graphview.GraphView; 
import com.jjoe64.graphview.series.DataPoint; 
import com.jjoe64.graphview.series.DataPointInterface; 
import com.jjoe64.graphview.series.LineGraphSeries; 
import com.jjoe64.graphview.series.OnDataPointTapListener; 
import com.jjoe64.graphview.series.PointsGraphSeries; 
import com.jjoe64.graphview.series.Series; 

public class MainActivity extends AppCompatActivity { 

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

     GraphView graph = (GraphView) findViewById(R.id.graph); 
     LineGraphSeries<DataPoint> series = new LineGraphSeries<>(new DataPoint[] { 
      new DataPoint(0, -2), 
      new DataPoint(1, 5), 
      new DataPoint(2, 3), 
      new DataPoint(3, 2), 
      new DataPoint(4, 6) 
     }); 
     graph.addSeries(series); 
     graph.setBackgroundColor(getResources().getColor(R.color.background_color)); 
     series.setThickness(5); 
     graph.getViewport().setScalable(true); 
     graph.getViewport().setScrollable(true); 

     PointsGraphSeries<DataPoint> series2 = new PointsGraphSeries<>(new DataPoint[] { 
      new DataPoint(0, -2), 
      new DataPoint(1, 5), 
      new DataPoint(2, 3), 
      new DataPoint(3, 2), 
      new DataPoint(4, 6) 
     }); 
     graph.addSeries(series2); 
     series2.setColor(Color.RED); 
     series2.setSize(10); 
     series2.setOnDataPointTapListener(new OnDataPointTapListener() { 
      @Override 
      public void onTap(Series series2, DataPointInterface dataPoint) { 
       Toast.makeText(getActivity(), "Series1: On Data Point clicked: "+dataPoint, Toast.LENGTH_SHORT).show(); 
      } 
     }); 
    } 
} 
+0

사용 getApplicationContext을 (넣어) 대신 getActivity – siddhesh

답변

2

귀하의 OnDataPointTapListener이 클래스 존재하지 않는 getActivity 방법 내부 익명 클래스, 그러나 당신의 활동에서 종료를 수행합니다. 당신은 당신의 OnDataPointTapListener에서 MainActivity에서 this를하지 않을 경우에 사용한다 :

가 대신 getActivity의
Toast.makeText(MainActivity.this.getActivity(), "Series1: On Data Point clicked: "+dataPoint, Toast.LENGTH_SHORT).show(); 
1

이 MainActivity.this

Toast.makeText(MainActivity.this, "Series1: On Data Point clicked: "+dataPoint, Toast.LENGTH_SHORT).show(); 
+1

의 난 당신이 몇 가지를 추가하시기 바랍니다 요청할 수 있습니다 당신의 대답에 대한 더 많은 맥락. 코드 전용 답변은 이해하기 어렵습니다. 그것은 당신이 당신의 포스트에있는 정보를 더 추가 할 수있는 경우에 둘 다 구경꾼 및 미래 독자를 도울 것이다. – RBT

관련 문제