Я хочу проверить, выбрал ли он элемент фрагмента [Домой, Поиск, Публикация, уведомление, профиль], если пользователь выбрал какой-либо из них, я хочу отключить выбор этой же операции еще раз до активности выбранного фрагмента.
Также в «Домашнем» упражнении у меня есть видоискатель, в котором есть элементы X, и если я снова щелкаю домашнее задание, а не отключаю его, я хочу переместить адаптер, чтобы просмотреть первый элемент в представлении вторичного хранилища [Идея, вдохновленная Instagram], когдаВы щелкаете домой, и вы попадаете в верхнюю запись.
Я пытался назвать идентификаторы фрагментации, но не мог работать
package com.capstone.araba;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.view.MenuItem;
import com.capstone.araba.Fragments.HomeFragment;
import com.capstone.araba.Fragments.NotificationFragment;
import com.capstone.araba.Fragments.ProfileFragment;
import com.capstone.araba.Fragments.SearchFragment;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import java.util.Objects;
import androidx.fragment.app.Fragment;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
public class MainActivity extends AppCompatActivity {
BottomNavigationView bottom_navigation;
Fragment selectedfragment = null;
private FirebaseUser user;
private static MainActivity mInstance;
public static synchronized MainActivity getInstance() {
return mInstance;
}
public void setConnectivityListener(ConnectivityReceiver.ConnectivityReceiverListener listener) {
ConnectivityReceiver.connectivityReceiverListener = listener;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mInstance = this;
bottom_navigation = findViewById(R.id.bottom_navigation);
bottom_navigation.setOnNavigationItemSelectedListener(navigationItemSelectedListener);
Bundle intent = getIntent().getExtras();
if (intent != null){
String publisher = intent.getString("publisherid");
SharedPreferences.Editor editor = getSharedPreferences("PREFS", MODE_PRIVATE).edit();
editor.putString("profileid", publisher);
editor.apply();
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new ProfileFragment()).commit();
} else {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new HomeFragment()).commit();
}
}
private BottomNavigationView.OnNavigationItemSelectedListener navigationItemSelectedListener =
new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected( MenuItem item) {
user = FirebaseAuth.getInstance().getCurrentUser();
switch (item.getItemId()){
case R.id.nav_home:
selectedfragment = new HomeFragment();
break;
case R.id.nav_search:
selectedfragment = new SearchFragment();
break;
case R.id.nav_add:
selectedfragment = null;
startActivity(new Intent(MainActivity.this, PostActivity.class));
break;
case R.id.nav_heart:
selectedfragment = new NotificationFragment();
break;
case R.id.nav_profile:
if(user != null) {
SharedPreferences.Editor editor = getSharedPreferences("PREFS", MODE_PRIVATE).edit();
editor.putString("profileid", Objects.requireNonNull(FirebaseAuth.getInstance().getCurrentUser()).getUid());
editor.apply();
selectedfragment = new ProfileFragment();
break;
}
else{
Intent i = new Intent(MainActivity.this, GuestActivity.class);
startActivity(i);
}
}
if (selectedfragment != null) {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
selectedfragment).commit();
}
return true;
}
};
}
Так что идея заключается в том, чтобы не позволить действиям всегда перезапускатьсяили обновляется каждый раз, когда я нажимаю на фрагмент активности, в которой я уже ...