Java 如何初始化全局变量android
我想将表Int[]y初始化为全局变量,在哪里以及如何初始化 直线图的代码Java 如何初始化全局变量android,java,android,Java,Android,我想将表Int[]y初始化为全局变量,在哪里以及如何初始化 直线图的代码 public class LineGraph{ Context applicationContext; Boolean Buttons; Boolean Legend; Boolean Grid; public Intent getIntent(Context context) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPrefer
public class LineGraph{
Context applicationContext;
Boolean Buttons;
Boolean Legend;
Boolean Grid;
public Intent getIntent(Context context) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
Buttons = prefs.getBoolean("view", true);
Legend = prefs.getBoolean("legend", true);
Grid = prefs.getBoolean("Grid", false);
// 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.setYLabels(10);
mRenderer.setYLabelsAlign(Align.RIGHT);
if (Buttons==true){
mRenderer.setZoomButtonsVisible(true);}
else{
mRenderer.setZoomButtonsVisible(false);
}
if (Legend==true){
mRenderer.setShowLegend(true);
}else{
mRenderer.setShowLegend(false);
}
if (Grid==true){
mRenderer.setShowGrid(true);
}else{
mRenderer.setShowGrid(false);
}
mRenderer.setApplyBackgroundColor(true);
mRenderer.setBackgroundColor(Color.BLACK);
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 intent1 = new Intent (context, GraphLoading.class);
intent1.putExtra("SomeKey",x);
Intent intent = ChartFactory.getLineChartIntent(context, dataset, mRenderer, "Line Graph Title");
return intent;
}
}
我想让GraphLoading可以编辑这个表和类LineGraph查看更改将这个声明放在布尔变量和getIntent函数之间:
公共静态int[]y编码>并在y分配之前删除int[]
。现在,您可以在包的每个方法和类中使用数组y 您可以创建此类的静态对象。
例如:
public class LineGraph{
public int Number;
public LineGraph() {}
}
然后您应该在任何活动中创建此类的静态对象,例如ExampleActivity
:
public static LineGraph LG = new LineGraph();
//then set some data to LG
LG.Number = 10;
然后,您可以在其他活动中使用此clas中的数据:
int Test = ExampleActivity.LG.Number;
//We will have 10
或第二种方式。您可以使用Intent
(在FirstPage
活动中)发布数据:
然后在SecondPage
活动中,您可以获得如下数据:
Intent sender = getIntent();
String some_str = sender.getExtras().getString("TEST_STRING");
int some_int = sender.getExtras().getInt("TEST_INT");
int[] some_int_array = sender.getExtras().getIntArray("TEST_INT_ARRAY");
将int[]y
声明为类变量(静态字段)和public
,以便在其包中的其他类中也可以访问它:
public class LineGraph {
public static int[] y = {30, 34, 45, 57, 77, 89, 100, 111, 123, 145};
Context applicationContext;
// ...
然后像这样从其他类引用它:LineGraph.y
例如:
public class GraphLoading extends Activity {
private LineGraph parent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.loading);
int y[] = LineGraph.y;
}
}
Java不支持顶级静态类。只有嵌套类可以是静态的。@Simon是的,你说得对。我将编辑答案。谢谢,您可以添加如何使用int[]y表(第一种方式)。@user2908626使用“getIntent()”方法将“int[]y”公开。在SomeActivity中创建此类,并进行渲染(将值设置为“int[]y”)。然后在其他一些活动int[]中,some_int_array=SomeActivity.LG.y;你能在我的代码中使用它吗(我是业余的…@user2908626为什么不能?能在非静态字段中使用它吗?我想更改GraphLoadnig类中的表y[],因为它在静态字段中,所以我无法更改它。@user2908626您可以更改静态字段…@user2908626我需要告诉您如何更改它?我不明白你在问什么,但这里有一个我刚刚为你做的例子:我粘贴和编辑你的代码,但我有一个错误
public class LineGraph {
public static int[] y = {30, 34, 45, 57, 77, 89, 100, 111, 123, 145};
Context applicationContext;
// ...
public class GraphLoading extends Activity {
private LineGraph parent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.loading);
int y[] = LineGraph.y;
}
}