android - 在我的情况下如何从活动转移到片段
问题描述
我想通过单击活动中的按钮进入主屏幕。问题是 HomeActivity 有 BottomNavigation 并将其分为 4 个片段我不想显示第一个“HomeFragment”我想显示的片段是 ProfileFragment 如何让 ProfileFragment 屏幕出现?
我已经搜索过,但在我的情况下有点不同
这是我的A活动
backTo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(PetHotelActivity.this, HomeActivity.class);
startActivity(intent);
}
});
这是我的家庭活动
public class HomeActivity extends AppCompatActivity {
BottomNavigationView bottomNavigationView;
Fragment seletedFragment = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
bottomNavigationView = findViewById(R.id.bottom_navigation);
bottomNavigationView.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(@NonNull MenuItem menuItem) {
switch (menuItem.getItemId()){
case R.id.nav_bottomBar_home:
seletedFragment = new HomeFragment();
break;
case R.id.nav_bottomBar_search:
seletedFragment = new SearchFragment();
break;
case R.id.nav_bottomBar_notification:
seletedFragment = new NotificationFragment();
break;
case R.id.nav_bottomBar_profile:
SharedPreferences.Editor editor = getSharedPreferences("PREFS", MODE_PRIVATE).edit();
editor.putString("profileid", FirebaseAuth.getInstance().getCurrentUser().getUid());
editor.apply();
seletedFragment = new ProfileFragment();
break;
}
if (seletedFragment != null){
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, seletedFragment).commit();
}
return true;
}
};
我想从 A 活动转到显示 ProfileFragment 我该怎么做?在那种情况下,当我单击按钮移动到 HomeFragment ...
解决方案
将标志传递给意图并参与活动
backTo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(PetHotelActivity.this, HomeActivity.class);
intent.putextra("flag","flag");
startActivity(intent);
}
});
现在在oncreate()
if (intent != null){
String flag= intent.getString("flag");
if(flag.equalsIgnorecase("flag")){
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragment_container, new ProfileFragment ()).commit();
}
}
希望对您有所帮助!
推荐阅读
- python - 莳萝是否存储串口属性?
- java - 无法将 Maven 依赖项添加到我的 Eclipse Web 部署程序集中
- amazon-web-services - 如何获取用户的 AWS 电子邮件地址?
- html - 标题和元标记装饰(样式)
- html - 解决网格内容
- mysql - 替换 MySQL 中第 n 次出现的字符串
- matplotlib - Matplotlib 正确的纵横比图形大小
- sails.js - schemaName 不适用于sails-postgresql
- ios - Swift 中没有数据传递时的补全块语法
- javascript - 使用 postMessage 将短字符串值发送到 iFrame