1

我想在片段内测试这个GraphView库。上有如下这行graphView = new LineGraphView(this, message);一个错误:Android无法解析构造函数LineViewGraph

无法解析构造LineGraphView

不知道如何引用正确的上下文。

这是一个链接到图书馆的示例演示。

https://github.com/jjoe64/GraphView-Demos/blob/master/src/com/jjoe64/graphviewdemos/SimpleGraph.java

import android.support.v4.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.LinearLayout; 
import android.widget.TextView; 

import com.jjoe64.graphview.GraphView; 
import com.jjoe64.graphview.GraphViewSeries; 
import com.jjoe64.graphview.GraphView.GraphViewData; 
import com.jjoe64.graphview.LineGraphView; 


public class GraphFragment extends Fragment { 
public static final String EXTRA_MESSAGE = "EXTRA_MESSAGE"; 

public static final GraphFragment newInstance(String message) 
{ 
    GraphFragment f = new GraphFragment(); 
    Bundle bdl = new Bundle(1); 
    bdl.putString(EXTRA_MESSAGE, message); 
    f.setArguments(bdl); 
    return f; 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    String message = getArguments().getString(EXTRA_MESSAGE); 
    View v = inflater.inflate(R.layout.graphfragment_layout, container, false); 
    TextView messageTextView = (TextView)v.findViewById(R.id.textView); 
    messageTextView.setText(message); 

    GraphViewSeries exampleSeries = new GraphViewSeries(new GraphView.GraphViewData[] { 
      new GraphViewData(1, 2.0d) 
      , new GraphViewData(2, 1.5d) 
      , new GraphViewData(3, 2.5d) 
      , new GraphViewData(4, 1.0d) 
    }); 

    GraphView graphView; 
    graphView = new LineGraphView(this, message); 
    graphView.addSeries(exampleSeries); // data 

    LinearLayout layout = (LinearLayout) v.findViewById(R.id.graph1); 
    layout.addView(graphView); 

    return v; 
} 

}

回答

2

更改为:

graphView = new LineGraphView(container.getContext(), message); 

Activity延伸context但片段没有。所以每当你尝试附加片段布局它的父ViewGroup(以将显示哪个片段)传递给onCreateView,您可以从中获取上下文。

相关问题