我正在开发一个Android应用程序,用于在android上使用tensorflow预测食物项目。我正在遵循指令并使用Google Codelab - Tensorflow for poets 提供的代码。我添加了一个额外的活动并使其成为MainActivity,我将从中启动CameraActivity使用FAB。我想要做的是在导航栏上按下后退按钮时,显示在活动CameraActivity中运行的片段Camera2BasicFragment中显示的预测到我的MainActivity上的toast。您还可以从第2页找到完整代码教程链接。
Camera2BasicFragment
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();
}
}
}
MainActivity.java
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);
}
});
答案 0 :(得分:0)
如果我正确无误,您希望将数据从 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");
}
如果您有兴趣在片段之间传递值,那么您可以使用 Bundle
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活动和片段中传递值的疑虑。 详细了解Bundle & Parcel