Java 如何在Achartengine线图中使用SharedReference?
我想在Java 如何在Achartengine线图中使用SharedReference?,java,android,eclipse,Java,Android,Eclipse,我想在LineGraph的代码中使用SharedReferences: public class LineGraph{ Context applicationContext; SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(applicationContext); public Intent getIntent(Context context) { // Ou
LineGraph
的代码中使用SharedReferences
:
public class LineGraph{
Context applicationContext;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(applicationContext);
public Intent getIntent(Context context) {
// Our first data
int[] x = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // x values!
int[] y = { 30, 34, 45, 57, 77, 89, 100, 111 ,123 ,145 }; // y values!
TimeSeries series = new TimeSeries("Line1");
for( int i = 0; i < x.length; i++)
{
series.add(x[i], y[i]);
}
// Our second data
int[] x2 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // x values!
int[] y2 = { 145, 123, 111, 100, 89, 77, 57, 45, 34, 30}; // y values!
TimeSeries series2 = new TimeSeries("Line2");
for( int i = 0; i < x2.length; i++)
{
series2.add(x2[i], y2[i]);
}
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset.addSeries(series);
dataset.addSeries(series2);
XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer(); // Holds a collection of XYSeriesRenderer and customizes the graph
mRenderer.setZoomButtonsVisible(true);
XYSeriesRenderer renderer = new XYSeriesRenderer(); // This will be used to customize line 1
XYSeriesRenderer renderer2 = new XYSeriesRenderer(); // This will be used to customize line 2
mRenderer.addSeriesRenderer(renderer);
mRenderer.addSeriesRenderer(renderer2);
// Customization time for line 1!
renderer.setColor(Color.WHITE);
renderer.setPointStyle(PointStyle.SQUARE);
renderer.setFillPoints(true);
// Customization time for line 2!
renderer2.setColor(Color.YELLOW);
renderer2.setPointStyle(PointStyle.DIAMOND);
renderer2.setFillPoints(true);
Intent intent = ChartFactory.getLineChartIntent(context, dataset, mRenderer, "Line Graph Title");
return intent;
}
}
公共类线图{
语境应用语境;
SharedReferences prefs=PreferenceManager.GetDefaultSharedReferences(applicationContext);
公共意图getIntent(上下文){
//我们的第一个数据
int[]x={1,2,3,4,5,6,7,8,9,10};//x值!
int[]y={30,34,45,57,77,89100111123145};//y值!
TimeSeries系列=新的TimeSeries(“Line1”);
对于(int i=0;i
但是SharedReferences prefs=PreferenceManager.getDefaultSharedReferences(applicationContext)代码>
不工作,它停止了应用程序。为什么?在方法中调用它,而不是在类级别
大概是这样的:
public class LineGraph {
public Intent getIntent(Context context) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
// Our first data
int[] x = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // x values!
...
按照您的方式,applicationContext始终为空。请提供您的logcat输出。
除此之外,我假设您在初始化共享首选项时收到nullpointer异常,因为applicationContext变量为null
将共享首选项的初始化放在getIntent()方法中,并传递上下文参数