Location
Download MaterialX 2.8
Get the Full Android Source Code for all the listed Layouts and more.
Buy Now for $25Layout Screenshot

package com.material.components.activity.picker;
import android.content.Intent;
import android.os.Bundle;
import com.google.android.material.snackbar.Snackbar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.gms.common.api.Status;
import com.google.android.libraries.places.api.Places;
import com.google.android.libraries.places.api.model.Place;
import com.google.android.libraries.places.api.model.Place.Field;
import com.google.android.libraries.places.widget.Autocomplete;
import com.google.android.libraries.places.widget.AutocompleteActivity;
import com.google.android.libraries.places.widget.model.AutocompleteActivityMode;
import com.material.components.R;
import java.util.Arrays;
import java.util.List;
public class PickerLocation extends AppCompatActivity {
private View parent_view;
private static final int REQUEST_CODE_ORIGIN = 500;
private static final int REQUEST_CODE_DEST = 600;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_picker_location);
parent_view = findViewById(android.R.id.content);
initToolbar();
initComponent();
if (!Places.isInitialized()) {
Places.initialize(getApplicationContext(), getString(R.string.google_maps_key));
}
}
private void initToolbar() {
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setNavigationIcon(R.drawable.ic_menu);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle(null);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
private void initComponent() {
((TextView) findViewById(R.id.tv_origin)).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openAutocompleteActivity(REQUEST_CODE_ORIGIN);
}
});
((TextView) findViewById(R.id.tv_destination)).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openAutocompleteActivity(REQUEST_CODE_DEST);
}
});
}
private void openAutocompleteActivity(int request_code) {
List fields = Arrays.asList(Field.ID, Place.Field.NAME);
Intent intent = new Autocomplete.IntentBuilder(AutocompleteActivityMode.OVERLAY, fields).build(this);
startActivityForResult(intent, request_code);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_ORIGIN) {
if (resultCode == RESULT_OK) {
Place place = Autocomplete.getPlaceFromIntent(data);
((TextView) findViewById(R.id.tv_origin)).setText(place.getName());
} else if (resultCode == AutocompleteActivity.RESULT_ERROR) {
Status status = Autocomplete.getStatusFromIntent(data);
Snackbar.make(parent_view, status.toString(), Snackbar.LENGTH_SHORT).show();
}
}
if (requestCode == REQUEST_CODE_DEST) {
if (resultCode == RESULT_OK) {
Place place = Autocomplete.getPlaceFromIntent(data);
((TextView) findViewById(R.id.tv_destination)).setText(place.getName());
} else if (resultCode == AutocompleteActivity.RESULT_ERROR) {
Status status = Autocomplete.getStatusFromIntent(data);
Snackbar.make(parent_view, status.toString(), Snackbar.LENGTH_SHORT).show();
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_search_setting, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
finish();
} else {
Toast.makeText(getApplicationContext(), item.getTitle(), Toast.LENGTH_SHORT).show();
}
return super.onOptionsItemSelected(item);
}
}