Как передать список из активити?

349
11 мая 2017, 10:45

есть Активити

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
    private static final String TAG = "myLogs";
    private GoogleMap mMap;
    List<FullDriver> fullDrivers = new ArrayList<FullDriver>();
//--------------------------------------------------------------------------------------------------
public List<FullDriver> getFullDrivers() {
    return fullDrivers;
}
public void setFullDrivers(List<FullDriver> fullDrivers) {
    this.fullDrivers = fullDrivers;
}
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
//Запускаю поток для считывания данных из базы 
        AllDriverParsing allDriverParsing = new AllDriverParsing(MapsActivity.this);
        allDriverParsing.execute();


    }
    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;
        // Add a marker in Sydney and move the camera
        LatLng sydney = new LatLng(-34, 151);
        mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
        mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));

    }

}

Здесь происходит считывание данных .

   public class AllDriverParsing extends AsyncTask<String,Void,String> {
            String url_getalldriver="******`введите сюда код`";
            List<FullDriver> fullDrivers = new ArrayList<>();
            Context context;
            public AllDriverParsing(Context context) {
                this.context = context;
            }
            @Override
            protected String doInBackground(String... params) {
                try {
                    //--------------------------------------------------------------------------------------
                    //Соеденяемся с url
                    URL url = new URL(url_getalldriver);
                    HttpURLConnection connection= (HttpURLConnection) url.openConnection();
                    //--------------------------------------------------------------------------------------
                    //Открываем поток для чтения
                    BufferedReader br=new BufferedReader(new InputStreamReader(connection.getInputStream()));
                    StringBuffer response=new StringBuffer();
                    String line;
                        while ((line = br.readLine())!=null){
                        response.append(line + "\n");
                    }
                    br.close();
                    connection.disconnect();
                    return response.toString();
                    //-------------------------------------------------------------------------------------------
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return null;
            }

            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                parse(s);

            }
        //--------------------------------------------------------------------------------------------------
        //метод для парсинга данных
            private void parse(String all){
                try {
                    JSONArray jsonArray = new JSONArray(all);
                    JSONObject jsonObject = null;
                    fullDrivers.clear();
                    FullDriver fullDriver;
                    for (int i = 0;i<jsonArray.length();i++){
                        jsonObject=jsonArray.getJSONObject(i);
                        int id=jsonObject.getInt("id");
                       String name=jsonObject.getString("name");
                        String number=jsonObject.getString("number");
                        String carnumber=jsonObject.getString("carnumber");
                        String latlng=jsonObject.getString("latlng");
                        String origin=jsonObject.getString("origin");
                        String destinitiom =jsonObject.getString("destinitiom");
                        fullDriver=new FullDriver();
                        fullDriver.setId(id);
                        fullDriver.setName(name);
                        fullDriver.setCarnumber(carnumber);
                        fullDriver.setLatlng(latlng);
                        fullDriver.setNumber(number);
                        fullDriver.setOrigin(origin);
                        fullDriver.setDestinition(destinitiom);
                        fullDrivers.add(fullDriver);

         }
//Пытаюсь передать список в MapsActvitty*
  MapsActivity  mapsActivity = new MapsActivity();
            mapsActivity.setFullDrivers(fullDrivers);

                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }

        }

2 Дня немогу это сделать !!!

Answer 1

Надо MapsActivity передать в качестве параметра в конструктор вашего AsyncTask:

 public class AllDriverParsing extends AsyncTask<String,Void,String> {
        String url_getalldriver="******`введите сюда код`";
        private MapsActivity mapsActivity;
        List<FullDriver> fullDrivers = new ArrayList<>();
        Context context;
        public AllDriverParsing(MapsActivity mapsActivity) {
            this.context=this.mapsActivity = mapsActivity;
        }
 //blah-blah
 private void parse(String all){
     //blah-blah
     mapsActivity.setFullDrivers(fullDrivers);
 } 
 }
READ ALSO
Занят glassfish, не запускается приложение с IntelijIDEA

Занят glassfish, не запускается приложение с IntelijIDEA

Установил glassfish, localhost:4848 работает через браузерА когда хочу запустить сервер через IDEA пишет Adress localhost:4848 is already in use

345
Неправильно отображается Table с rowspan и colspan в Firefox

Неправильно отображается Table с rowspan и colspan в Firefox

Табличка отображается хорошо в Chrome и Opera, и совсем не так в Firefox

215
Сделать рамку в div используя ::after

Сделать рамку в div используя ::after

Мне нужно, чтобы была дополнительная рамка, в которую можно было бы потом запихнуть еще контентУ меня её не вышло выровнять

286
Как через админ панель добавить записи/картинки/видео на сайт?

Как через админ панель добавить записи/картинки/видео на сайт?

Делаю простую админ панельИмеется сайт с картинками, видео, записями

372