简体   繁体   English

如何将数据从片段传递到活动?

[英]How to pass data from Fragment to Activity?

I'm new at Android. 我是Android新手。 I want to pass data from a fragment to another Activity. 我想将数据从一个片段传递到另一个活动。 This fragment is displayed on MainActivity and I need to pass data to DetalleActividadActivity . 该片段显示在MainActivity ,我需要将数据传递给DetalleActividadActivity

This is my fragment's code: 这是我片段的代码:

public final static String EXTRA_PARAMETER = "com.example.arc3labswtm_android.customs.PARAMETER";


@Override
public void onActivityCreated(Bundle savedInstanceState) 
{
    super.onActivityCreated(savedInstanceState); 


    mAdapter = new ActivitiesAdapter(getActivity(), R.layout.act_itemlist);
      ListView listViewToDo = (ListView) getView().findViewById(R.id.activities_fragment_list);
      listViewToDo.setAdapter(mAdapter);
      listViewToDo.setOnItemClickListener(new OnItemClickListener(){
            public void onItemClick(AdapterView<?> parent, View view, int position,long id)
            {

                final Activities currentItem = mAdapter.getItem(position);
                String pid = currentItem.getId();
                Intent newActivity = new Intent(view.getContext(), DetalleActividadActivity.class);
                startActivity(newActivity);
                newActivity.putExtra(EXTRA_PARAMETER, pid);
            }
        });
      refreshItemsFromTable();
}

This is my Activity's code: 这是我的活动的代码:

public class DetalleActividadActivity extends ActionBarActivity 
{
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_detalle_actividad);

        ActionBar actionBar = getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);

        Intent intent = getIntent();
        String parameter = intent.getStringExtra(ActivitiesFragment.EXTRA_PARAMETER);


    }
}

Any ideas? 有任何想法吗? I don't know if this has something to do but my Activities are in this package: com.example.arc3labswtm_android 我不知道这是否有事可做,但是我的活动在此软件包中: com.example.arc3labswtm_android

And my fragment is in this: com.example.arc3labswtm_android.customs 我的片段在其中: com.example.arc3labswtm_android.customs

I don't know if that is why EXTRA_PARAMETER does not work. 我不知道这是为什么EXTRA_PARAMETER不起作用的原因。

When I get to the DetalleActividadActivity the parameter is always null. 当我进入DetalleActividadActivity时,该parameter始终为null。

Please help!. 请帮忙!。

The problem is , you have put the EXTRA_PARAMETER to the IntentExtras after the Activity start 问题是,你已经把EXTRA_PARAMETER到IntentExtrasActivity start

You need to put the Extras to the intent before you start the activity. 开始活动之前,您需要将Extras放在意图上。

You can pass the data through intent when you start the Activity from Fragment like this 当您从Fragment启动Activity时,您可以通过意图传递数据

 Intent newActivity = new Intent(getActivity(), DetalleActividadActivity.class);
 newActivity.putExtra(EXTRA_PARAMETER, pid);
 startActivity(newActivity);

When the Activity is Created , you can retrieve the data like this 创建活动后,您可以像这样检索数据

 String parameter = getIntent().getStringExtra(ActivitiesFragment.EXTRA_PARAMETER);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM