Вы говорите, что активность Archivo равна MainActivity, так что происходит, когда вы вводите опцию R.id.navigation_dashboard, она открывает активность Archivo, которая, когда она отображается, показывает первый вариант BottomNavigation, но Activity Archivo и а не MainActivity
Для достижения этого эффекта вы должны использовать FragmentLayout
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<FrameLayout
android:id="@+id/contenido"
android:layout_width="match_parent"
android:layout_marginTop="0dp"
android:layout_height="match_parent"
android:layout_marginBottom="56dp"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:fitsSystemWindows="true"/>
<android.support.design.widget.BottomNavigationView
android:id="@+id/navigation"
android:fitsSystemWindows="false"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
app:elevation="6dp"
android:background="@color/blanco"
android:foreground="?attr/selectableItemBackground"
app:menu="@menu/menu_propietario"/>
</android.support.design.widget.CoordinatorLayout>
И в классе MainActivity
public class MainActivity extends AppCompatActivity implements BottomNavigationView.OnNavigationItemSelectedListener {
Fragment fragment;
FrameLayout frameLayout;
BottomNavigationView bottomNavigationView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bottomNavigationView = (BottomNavigationView) findViewById(R.id.navigation);
frameLayout = (FrameLayout) findViewById(R.id.contenido);
bottomNavigationView.setOnNavigationItemSelectedListener(this);
}
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Fragment fr = fragment;
switch (item.getItemId()){
case R.id.navigation_home:
pestaña = R.id.inicio;
fragment = InicioFragment.newInstance();
break;
case R.id.navigation_dashboard:
fragment = ArchivoFragment.newInstance();
break;
case R.id.navigation_notifications:
break;
}
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
if (fr != null){
transaction.remove(fr);
}
if(fragment != null){
transaction.replace(R.id.contenido, fragment);
}
transaction.commit();
return true;
}
}
и ваш класс ArchiveFragment, подобный этому
public class ArchiveFragment extends Fragment {
public ArchiveFragment() {
}
public static ArchiveFragment newInstance() {
ArchiveFragmentFragment fragment = new ArchiveFragmentFragment();
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_archive, container, false);
return view;
}
}
Надеюсь, я помог
НЕТ, Geocoder API помогает находить только адреса на основе номера, улицы, страны, округа, пин-кода, но не сообщает вам, относится ли адрес к бизнес-категории.
Вы можете попробовать Places API и проверить, работает ли он в вашем случае использования. Узнайте больше на developer.here.com/documentation/places/topics/quick-start-find-text-string.html.
Ниже приведен пример категории отелей (Бизнес) в Санни Вейл, Калифорния. Вы можете получить идентификатор и информацию о местонахождении здесь.
https://places.cit.api.here.com/places/v1/discover/explore?at=37.370831%2C-122.024636&cat=500-5000-0000&cs=pds&Accept-Language=en-US%2Cen%3Bq%3D0.5&app_id=xxxx&app_code=xxxx