Передача найденной строки в другой вид деятельности - PullRequest
0 голосов
/ 27 сентября 2019

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

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add_note);       
    searchView = (SearchView) findViewById(R.id.sviewCriticalNext);
    supportMapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map1);
    btnCritical = (Button) findViewById(R.id.btnCriticalNext);
    btnZoom = (ImageButton) findViewById(R.id.btnZoom);
    btnZOut = (ImageButton) findViewById(R.id.btnZoomOut);
    }

searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {

        @Override
        public boolean onQueryTextSubmit(String s) {


            String location = searchView.getQuery().toString();

            getSearchedString(s);

            List<Address> addressList = null;
            if (location != null || !location.equals("")) {

                Geocoder geocoder = new Geocoder(AddNoteActivity.this);

                try {
                    addressList = geocoder.getFromLocationName(location, 1);
                } catch (IOException e) {
                    e.printStackTrace();
                }

                Address address = addressList.get(0);
                LatLng latLng = new LatLng(address.getLatitude(), address.getLongitude());
                gMap.addMarker(new MarkerOptions().position(latLng).title(location));
                gMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 10));

            }


            return false;
        }

        @Override
        public boolean onQueryTextChange(String s) {
            return false;
        }
    });


    supportMapFragment.getMapAsync(AddNoteActivity.this);





}

Стилизованная карта, она содержит кнопки увеличения / уменьшения

@Override
public void onMapReady(GoogleMap googleMap) {
    gMap=googleMap;
    gMap.setBuildingsEnabled(true);
    boolean success = googleMap.setMapStyle(new MapStyleOptions(getResources().getString(R.string.style_json)));

    if (!success) {
        Log.e(TAG, "Style parsing failed.");
    }




    btnZoom.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            gMap.animateCamera(CameraUpdateFactory.zoomIn());
        }
    });



    btnZOut.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            gMap.animateCamera(CameraUpdateFactory.zoomOut());
        }
    });


}

Поиск строки, я хочу передать ее

public String getSearchedString(String string){
    Toast.makeText(AddNoteActivity.this, "Result: "+string, Toast.LENGTH_LONG).show();


    passToActivity(string);
    return string;
}

Передача строки при клике, ноне работает

private void passToActivity(String string) {

    btnCritical.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent=new Intent(AddNoteActivity.this, EndOfAddNoteActivity.class);
            intent.putExtra("LOCATION",string);
            startActivity(intent);
        }
    });

}

1 Ответ

0 голосов
/ 27 сентября 2019

Возможно попробуйте так: make global varialble:

private String stringToPass

, затем установите слушателя кнопки в onCreate () следующим образом:

btnCritical.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        if(stringToPass != null) {
        Intent intent=newIntent(AddNoteActivity.this,EndOfAddNoteActivity.class);
        intent.putExtra("LOCATION",stringToPass);
        startActivity(intent);}
}});

И, наконец, вonQueryTextSubmit сделать это: stringToPass = searchView.getQuery (). toString ();

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