2017-01-02 4 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 не существует, но она завершает работу в вашей деятельности. Вы должны использовать this из Вашего MainActivity это не из вашего OnDataPointTapListener:

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

Вместо getActivity поставил MainActivity.this

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

Могу ли я просить вас, пожалуйста, добавить некоторые больше контекста вокруг вашего ответа. Кодовые ответы трудно понять. Это поможет читателю и будущим читателям, если вы сможете добавить дополнительную информацию в свой пост. – RBT

Смежные вопросы