0

インテントが正しく機能しないのはなぜですか? MainActivity は、配列 (series1Numbers) からの行の 1 つを最初にプロットしたグラフです。別のクラス (Main2Activity) に別のクラス (Main2Activity) があり、スピナーを使用して MainActivity の (series1numbers) 配列にデータを入力し、グラフを生成します。現在、(series1numbers) のグラフ ラインは空白です。これは、(Main2Activity) からの単一の数値を入力する方法を理解できていないため、非常に理にかなっています。検索して検索しましたが、この問題の点をつなぐことができませんでした。

メイン アクティビティ.java

package com.example;
import java.util.Arrays;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import com.androidplot.series.XYSeries;
import com.androidplot.xy.LineAndPointFormatter;
import com.androidplot.xy.SimpleXYSeries;
import com.androidplot.xy.XYPlot;

/**
* The simplest possible example of using AndroidPlot to plot some data.
*/
public class MainActivity extends Activity
{

private XYPlot mySimpleXYPlot;

@Override
public void onCreate(Bundle savedInstanceState)
{

super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent intename = getIntent();
String name = (String) intename.getSerializableExtra("series1Numbers");



// initialize our XYPlot reference:
mySimpleXYPlot = (XYPlot) findViewById(R.id.mySimpleXYPlot);

// Create a couple arrays of y-values to plot:
Number[] series1Numbers ={name};
Number[] series2Numbers = {-4, -4, -5, -4, -4, -4, -3, -7, -4, -2, -4, -5, -5, -5};

// Turn the above arrays into XYSeries':
XYSeries series1 = new SimpleXYSeries(Arrays.asList(series1Numbers), 
// SimpleXYSeries takes a List so turn our array into a List
SimpleXYSeries.ArrayFormat.Y_VALS_ONLY, 
// Y_VALS_ONLY means use the element index as the x value
"Series1");                             
// Set the display title of the series

// same as above
XYSeries series2 = new SimpleXYSeries(Arrays.asList(series2Numbers), SimpleXYSeries.ArrayFormat.Y_VALS_ONLY, "Series2");

// Create a formatter to use for drawing a series using LineAndPointRenderer:
LineAndPointFormatter series1Format = new LineAndPointFormatter(
        Color.rgb(0, 200, 0),                   // line color
        Color.rgb(0, 100, 0),                   // point color
        null);                                  // fill color (none)

// add a new series' to the xyplot:
mySimpleXYPlot.addSeries(series1, series1Format);

// same as above:
mySimpleXYPlot.addSeries(series2,
        new LineAndPointFormatter(Color.rgb(0, 0, 200), Color.rgb(0, 0, 100), null));


// reduce the number of range labels
mySimpleXYPlot.setTicksPerRangeLabel(3);

// by default, AndroidPlot displays developer guides to aid in laying out your plot.
// To get rid of them call disableAllMarkup():
mySimpleXYPlot.disableAllMarkup();

}

Main2Activity.java

package com.example;


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.AdapterView.OnItemSelectedListener;

public class Main2Activity extends Activity implements OnItemSelectedListener {

//TextView series1Numbers ;
Spinner spin;
String[] series1Numbers = { "-1", "-2", "-3", "-4", "-5",
   "-6", "-7", "-8" , "-9" , "-10" };
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);

//series1Numbers  = (TextView) findViewById(R.id.series1Numbers );

Spinner spin = (Spinner) findViewById(R.id.spinner);
spin.setOnItemSelectedListener(this);

ArrayAdapter<String> aa = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, series1Numbers);

spin.setAdapter(aa);
}

@Override
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
// TODO Auto-generated method stub
// series1Numbers .setText(items[position]);
    if (position == 1){
      Intent intentObj = new Intent(Main2Activity.this, MainActivity.class);
      intentObj.putExtra("series1Numbers", series1Numbers);
      startActivity(intentObj);

    }
}
4

1 に答える 1

1
Bundle b=new Bundle();
b.putStringArray(key, new String[]{value1, value2});
Intent i=new Intent(context, Class);
i.putExtras(b);

読むために:

Bundle b=this.getIntent().getExtras();
String[] array=b.getStringArray(key);

これがあなたを助けることを願っています。:)

詳細については、こちらを参照してください。

于 2013-01-18T04:37:07.620 に答える