在某些情况下,可能会需要在没有上下文的情况下使用导航器。下面是一种解决方法的示例:
import android.content.Intent;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
private static final int REQUEST_CODE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建一个Intent对象,指定目标Activity的类
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
// 在Intent对象中添加需要传递的数据
intent.putExtra("key", "value");
// 启动目标Activity,并等待结果返回
startActivityForResult(intent, REQUEST_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// 检查请求码和结果码
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
// 处理返回的数据
String result = data.getStringExtra("result");
// ...
}
}
}
在上面的示例中,我们创建了一个Intent对象,并指定了目标Activity的类。然后,我们可以使用putExtra()
方法在Intent对象中添加需要传递的数据。
接下来,我们使用startActivityForResult()
方法启动目标Activity,并传递Intent对象和请求码。这样,目标Activity就会启动,并且在完成后会返回结果。
当目标Activity完成后,会调用onActivityResult()
方法。在这个方法中,我们可以检查请求码和结果码,并处理返回的数据。
需要注意的是,上述示例中的MainActivity.this
是指当前Activity的上下文。如果在没有上下文的情况下使用导航器,你可能需要找到一个合适的上下文来替代MainActivity.this
。