我有一个活动,它从其他活动中获取一些字符串:
public class ShowPoints extends AppCompatActivity {
public String points;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show_points);
Intent i = getIntent();
points = i.getStringExtra("geoPoints");
}
}
这行得通。
从这个活动< code>ShowPoints中,我想将接收到的字符串< code>points发送到它的片段< code>PointsOnMap
为此,我创建了片段PointsOnMap
并执行以下操作:
public class PointsOnMap extends Fragment implements OnMapReadyCallback {
......
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
act = new ShowPoints();
String points = act.points;
mView = inflater.inflate(R.layout.activity_points_on_map, container, false);
return mView;
}
但是,片段<code>PointsOnMap<code>的<code>字符串点
我想知道我做错了什么。我在这里阅读了其他一些帖子,似乎我正在以正确的方式做到这一点。
----EDIT----
我对代码所做的最后编辑似乎不起作用,我很确定问题出在我传递参数的部分,因为,如果没有参数传递,一切都正常,初始地图也显示出来了。
因此,到目前为止,包含类的活动如下:
public class ShowPoints extends AppCompatActivity {
public String points;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show_points);
Intent i = getIntent();
points = i.getStringExtra("geoPoints");
PointsOnMap pointsOnMapFragment = new PointsOnMap();
Bundle bundle = new Bundle();
bundle.putString("geoPoints",points);
pointsOnMapFragment.setArguments(bundle);
Log.d("REACHED HERE","---------");
}
}
我检索传递的字符串的那部分片段是这样的:
public class PointsOnMap extends Fragment implements OnMapReadyCallback {
......
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Bundle args = getArguments();
geopoints = args.getString("geoPoints");
mView = inflater.inflate(R.layout.activity_points_on_map, container, false);
return mView;
}
由于某种原因,它仍然不工作......回溯指示geopoint=args.getString("GeoPoint")上的片段上的
空对象引用
;
我以前遇到过同样的问题,在传递意图数据时,您可能会遇到很多问题,同时仍然在同一线程中,所以我建议将数据存储到SharePrefrence中,
然后使用意图
传递它,例如:
public String points;
Intent i = getIntent();
SharedPreferences settings = getSharedPreferences("pref", MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.putString("geoPoints", "geoPoints");
editor.commit();`
points = i.getStringExtra(getSharedPreferences("pref",MODE_PRIVATE).getString("geoPoints",""));
如果你想在创建片段时传递信息,你需要调用setArgument,这里有一个https://stackoverflow.com/a/17436739/6726261的例子
如果您需要在片段创建后传递数据,您可以在片段中定义一个回调函数来应用,Android doc就是一个很好的例子https://developer.android.com/guide/components/fragments.html#CommunicatingWithActivity
当您从 ShowPoints 活动中替换/添加 PointsOnMap 片段时:
PointsOnMap pointsOnMapFragment = new PointsOnMap();
Bundle bundle = new Bundle();
bundle.putString("geoPoints",geoPoints);
pointsOnMapFragment.setArguments(bundle);
并在碎片使用上获取地质点:
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String geoPoint = getArguments().getString("geoPoints");
}
对于将数据从活动传递到活动,我们使用意图对象,对于将数据从活动传递到片段或片段到片段,我们使用片段的setArgument(Bundle bundle)方法来携带数据。
我想在片段的活动中使用一些文本视图(cityField,updatedField)。我知道在活动中使用它们会更容易,但问题是,由于要获取一些JSON数据,我不得不在Fragment上加入一些代码 我已经得到了活动代码的ID 现在我想在我的片段中使用它们 所以问题是 - 这可能吗?如果可能,如何? 我已经检查了这个网站上的一些答案 - 在Android中将数据从活动发送到片段 如何使用捆绑包将数据从
我需要拍照并发送到主活动并发送到第三活动 这是MainActivity的代码 我有任何错误,但当我试图拍摄一张照片时,我得到这样的信息:不幸的是,第一相机停止了,我的问题是什么?
我有一个关于片段的问题。场景是:我登录后,我在一个有3个片段的活动上。对于我使用ViewPager的片段。现在我必须在我的一个片段中使用登录用户名。我买了用户名从登录页面使用putExtra.我的问题是如何把用户名带到片段中??
次要活动(通过意图向主活动发送“endpoint”字符串): 主活动(从次要活动获取字符串): 在Fragment类上,我试图在TextView上显示数据: 如何修复它并将字符串从一个活动发送到另一个活动上的片段? 下面是XML:
我需要将数据从片段发送到另一个活动 我在Homeactive下的LoadsFraank中使用此代码 在另一个活动(LoadActivity)中接收数据 但是意图没有附加条件 请看下面的截图
在我的应用程序中,我试图将数据从我的发送到一个名为的服务。这是我的以下代码: MainActivity.class: BGS服务。课程: 但我没有在服务类中获取数据。以下是我得到的错误: 02-25 09:05:41.166:E/AndroidRuntime(2633): JAVAlang.RuntimeException:无法启动活动 组件信息{com.microapple.googleplac