android

android获取activity的方法

小樊
81
2024-12-02 20:07:55
栏目: 编程语言

在Android中,获取Activity的方法主要有以下几种:

  1. 显式调用:通过startActivity()方法从一个Activity启动另一个Activity。例如:
Intent intent = new Intent(CurrentActivity.this, TargetActivity.class);
startActivity(intent);
  1. 隐式调用:通过startActivityForResult()方法从一个Activity启动另一个Activity,并期望从目标Activity获取结果。例如:
Intent intent = new Intent(CurrentActivity.this, TargetActivity.class);
startActivityForResult(intent, REQUEST_CODE);
  1. 使用ActionBarsetDisplayHomeAsUpEnabled()onOptionsItemSelected()方法在导航栏中添加返回按钮,点击返回按钮时返回上一个Activity。例如:
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
        actionBar.setDisplayHomeAsUpEnabled(true);
    }
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == android.R.id.home) {
        onBackPressed();
        return true;
    }
    return super.onOptionsItemSelected(item);
}
  1. 使用FragmentgetParentFragmentManager()方法获取父FragmentManager,然后使用beginTransaction()方法进行Activity之间的跳转。例如:
FragmentManager fragmentManager = getParentFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.container, new TargetFragment());
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
  1. 使用ContextstartActivity()方法从非Activity类中启动Activity。例如:
public class UtilityClass {
    public static void startTargetActivity(Context context) {
        Intent intent = new Intent(context, TargetActivity.class);
        context.startActivity(intent);
    }
}

然后在需要启动Activity的地方调用UtilityClass.startTargetActivity(context)

0
看了该问题的人还看了