Java 如何将数据从片段容器活动传递到另一个活动
我正在开发一个android应用程序,在android上使用tensorflow预测食物项目。我遵循说明并使用提供的代码。我添加了一个额外的活动,并使其成为使用FAB启动CameraActivity的主要活动。我想做的是显示片段Camera2BasicFragment中显示的预测只要我按下导航栏上的后退按钮,就可以从活动CameraActivity运行到我的主活动上的toast。您还可以从教程链接的第2页找到完整代码 Camera2BasicFragmentJava 如何将数据从片段容器活动传递到另一个活动,java,android,tensorflow,computer-vision,Java,Android,Tensorflow,Computer Vision,我正在开发一个android应用程序,在android上使用tensorflow预测食物项目。我遵循说明并使用提供的代码。我添加了一个额外的活动,并使其成为使用FAB启动CameraActivity的主要活动。我想做的是显示片段Camera2BasicFragment中显示的预测只要我按下导航栏上的后退按钮,就可以从活动CameraActivity运行到我的主活动上的toast。您还可以从教程链接的第2页找到完整代码 Camera2BasicFragment private void sho
private void showToast(final String text) {
final Activity activity = getActivity();
if (activity != null) {
activity.runOnUiThread(
new Runnable() {
@Override
public void run() {
textView.setText(text);
}
});
}
}
CameraActivity.java
public class CameraActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camera);
if (null == savedInstanceState) {
getFragmentManager()
.beginTransaction()
.replace(R.id.container, Camera2BasicFragment.newInstance())
.commit();
}
}
}
floatingActionButton1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//TODO something when floating action menu third item clicked
Intent i = new Intent(MainActivity.this, CameraActivity.class);
startActivityForResult(i, 1);
}
});
MainActivity.java
public class CameraActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camera);
if (null == savedInstanceState) {
getFragmentManager()
.beginTransaction()
.replace(R.id.container, Camera2BasicFragment.newInstance())
.commit();
}
}
}
floatingActionButton1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//TODO something when floating action menu third item clicked
Intent i = new Intent(MainActivity.this, CameraActivity.class);
startActivityForResult(i, 1);
}
});
如果我答对了,您希望将数据从CameraActivity传输到MainActivity 然后你可以使用意图
public void onClick(View v) {
//TODO something when floating action menu third item clicked
Intent i = new Intent(CameraActivity.this,MainActivity);
i.putExtra("KEY","suggestionValue");
startActivityForResult(i, 1);
}
然后在MainActivity上,您可以像这样接收它
{
String value = getIntent().getStringExtra("KEY");
}
如果您对在片段之间传递值感兴趣,那么您可以使用包
Fragment fragment = new SomeFragment();
Bundle bundle = new Bundle();
bundle.putString(key, value);
fragment.setArguments(bundle);
然后在接收片段的onCreate中,您可以调用
Bundle bundle = this.getArguments();
if (bundle != null) {
int myInt = bundle.getInt(key, defaultValue);
}
我希望这消除了您对在android活动和片段中传递值的疑虑。
阅读更多关于