如何将数据从Fragment传递给Activity?

时间:2014-04-22 00:11:25

标签: android android-intent android-fragments

我是Android新手。我想将数据从片段传递到另一个Activity。此片段显示在MainActivity上,我需要将数据传递到DetalleActividadActivity

这是我的片段代码:

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();
}

这是我的活动代码:

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);


    }
}

有什么想法吗?我不知道这是否有事可做,但我的活动在这个包中: com.example.arc3labswtm_android

我的片段是这样的: com.example.arc3labswtm_android.customs

我不知道这是EXTRA_PARAMETER不起作用的原因。

当我到达DetalleActividadActivity时,parameter始终为空。

请帮忙!

1 个答案:

答案 0 :(得分:0)

问题是,您已将EXTRA_PARAMETER置于IntentExtras之后的Activity start

在开始活动之前,您需要将Extras添加到intent中。

当您从片段中启动Activity时,您可以通过意图传递数据

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

创建活动时,您可以检索此类数据

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