Передача ArrayList <Double>другому классу - PullRequest
0 голосов
/ 28 августа 2018

Я могу прочитать и сохранить текстовый файл в Arraylist с моим кодом. Теперь я хочу использовать это Arraylist в других действиях, но у меня есть проблемы с передачей Arraylist другому классу. Я попробовал это с намерением, но это не сработало. Я добавлю коды моей программы ниже.

Intent intent=new Intent(this, ergebnisse.class);
intent.putExtra("NEFZ", Nlist);
startActivity(intent);

Надеюсь, вы мне поможете.

Мое первое занятие:

public class NEFZ2array extends AppCompatActivity implements Serializable {

public static void main(String[] args) {
    FileReader file = null;
    try {
        file = new FileReader("NEFZ.txt");
    } catch (FileNotFoundException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    ArrayList<Double> Nlist = new ArrayList<Double>();
    int i=0;
    Double d= null;
    try {
        BufferedReader input = new BufferedReader(file);
        String s=null;
        while((s=input.readLine())!=null) {
            StringTokenizer st = new StringTokenizer(s,",");
            while(st.hasMoreTokens()) {
                try {
                    d = Double.parseDouble(st.nextToken());
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                Nlist.add(i, d);
            }
        }
        input.close();
    } catch(Exception e) {
        e.printStackTrace();
    }
    for(double j:Nlist) {
        System.out.println(j);
    }
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_nefz2array);

}
}

Активность моего получателя:

public class ergebnisse extends AppCompatActivity implements Serializable {

public Button button_ausfuerlicher;
public Button button_home;

public void init(){
    button_ausfuerlicher = (Button) findViewById(R.id.button_ausfuerlicher);
    button_ausfuerlicher.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Intent intent = new Intent(ergebnisse.this, ausfuehrlicher.class);

            startActivity(intent);
        }
    });
}

public void init2(){
    button_home = (Button) findViewById(R.id.button_home);
    button_home.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Intent intent = new Intent(ergebnisse.this, MainActivity.class);

            startActivity(intent);
        }
    });
}

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_ergebnisse);
    this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);

    init();
    init2();
}
}

Ответы [ 3 ]

0 голосов
/ 28 августа 2018

Точкой входа в приложение для Android обычно является метод onCreate.

Я подозреваю, что ваш основной метод (традиционная точка входа Java) не запускается. Вы можете попытаться вызвать его из onCreate, но в действительности следует переименовать его.

Чтобы получить намерение, которое следует отправлять до тех пор, пока вы звоните на свой основной и добавите код намерения, убедитесь, что получатель переопределяет onReceive.

@Override
public void onReceive(Context context, Intent intent) {
    ArrayList<Double> NEFZ = intent.getExtras().getString("NEFZ");
}
0 голосов
/ 28 августа 2018

Чтобы получить список двойного массива в активности получателя, вы можете использовать:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ergebnisse);
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);

        // Get double list from sender activity
        List<Double> doubleList = (ArrayList<Double>) getIntent().getSerializableExtra("NEFZ");

        // TODO: Process your double list here

        init();
        init2();
}
0 голосов
/ 28 августа 2018

Вам нужно вызвать getIntent () в вашей активности получателя.

Intent intent = getIntent();

и тогда вы можете позвонить

intent.getExtras()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...