Намерение из нескольких действий - PullRequest
0 голосов
/ 19 июня 2020

У меня проблема с получением данных от нескольких занятий. Вот моя проблема.

  1. Я сделал 3 Activity для получения данных друг от друга. (Позвольте мне сказать 3 Activity A, B, C) A, B выполняют разные методы, но их результаты одного типа , список ArrayList. У меня есть цель получить оба результата в C от A, B.

Activity-A

Intent intent = new Intent(RouteInfoDebug1.this, LiveLocationInfo.class);
Bundle bundle = new Bundle();
bundle.putStringArrayList("stdid", (ArrayList<String>) list);
intent.putExtras(bundle);
Log.d("LLNC", "Passed Value:" + (ArrayList<String>) list +"\n");
startActivity(intent);

Activity-B

Intent intent = new Intent(LowBusInfo.this, LiveLocationInfo.class);
Bundle bundle = new Bundle();
bundle.putStringArrayList("lowStdid", (ArrayList<String>) list);
intent.putExtras(bundle);
Log.d("LLLC", "Passed Value:" + (ArrayList<String>) list +"\n");
startActivity(intent);

Activity- C

Bundle bundle = getIntent().getExtras();
ArrayList<String> list = bundle.getStringArrayList("stdid");
Log.d("LLNC", "Received Value: " + bundle.getStringArrayList("stdid")+"\n");

ArrayList<String> lowList = bundle.getStringArrayList("lowStdid");
Log.d("LLLC", "Received Value: " + bundle.getStringArrayList("lowStdid")+"\n");

Я закодировал вот так. Когда я проверил каждое значение (переданное значение из журнала.d) из разных действий A, B, оно было идеальным.

из списка A: [null, 305001086, 305001087]

из списка B. : [ноль, 305001233, 305001241, 305001010, 305001123, 305001239, 305001273, 305001340, 305001143, 305001352, 305200048, 305001269, 305001275, 305001345, 305001167, 305001237, 305001434, 305001235, 305001310500, 30500138050043 305000887, 305001159, 305001347, 305001247, 305001353, 305001346, 305001171, 305001231, 305001169, 305001086, 305001127, 305200003, 305001341, 305001274, 305001245, 305001155, 305001088, 305001342, 3050012500, 3050012500, 305001088, 305001342, 3050012500, 3050012500 305001163]

Но проблема в Activity- C. Я все время получаю ноль от одного действия. Например, я получаю null из списка B, когда получаю полное значение списка A, или происходит обратная ситуация. Я гуглил целый день, наконец, я нашел, что кто-то говорит, что два действия нельзя запускать одновременно, поэтому я сопоставил ключ одинаково. Но результат был совершенно таким же.

Вот цель деталей: я хотел получить все данные из A, B в C, после этого я хотел создать условие между A List и B List, уточнить его и используйте код для получения других данных.

На самом деле я разделил занятия из-за моего удобства. Если я объединю два занятия (A, B) в одно (но разные классы), может ли быть решение? Это мой первый вопрос, извините за слишком долгий срок. Заранее спасибо.

Это запускает действие A, затем воспроизводит действие B.

public void mOnClick(View view){
          switch(view.getId()){
            case R.id.btnSearch:

                    new Thread(new Runnable(){
                        @Override
                        public void run(){
                            data = getRouteInfo();

                            /*Activity B's Method will be executed here*/
                            LowBusInfo lowBusInfo = (LowBusInfo)getApplication();
                            lowBusInfo.getLowBusInfo();

                            lowBusInfo.thread.start();

                            thread.start();

                            runOnUiThread(new Runnable(){
                                @Override
                                public void run(){
                                    textView.setText(data);
                                   }
                            });
                        }
                    }).start();
                    break;
            }
        }
...