【问题标题】:How to pass data from Fragment to Activity?如何将数据从 Fragment 传递到 Activity?
【发布时间】:2014-04-22 08:31:33
【问题描述】:

我是 Android 新手。我想将数据从片段传递到另一个活动。这个片段显示在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 不起作用的原因。

当我进入 DetelleActividadActivity 时,parameter 始终为空。

请帮忙!

【问题讨论】:

    标签: android android-intent android-fragments


    【解决方案1】:

    问题是,您在Activity start 之后将EXTRA_PARAMETER 放到了IntentExtras

    您需要在开始活动之前将 Extras 放入 Intent。

    当你像这样从 Fragment 启动 Activity 时,你可以通过 Intent 传递数据

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

    当Activity被创建时,你可以像这样检索数据

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

    【讨论】:

    • 谢谢!!这就是问题嘿嘿,谢谢@Libin
    猜你喜欢
    • 2018-01-07
    • 1970-01-01
    • 1970-01-01
    • 2020-12-23
    • 1970-01-01
    • 1970-01-01
    • 2013-07-26
    • 2021-01-07
    • 1970-01-01
    相关资源
    最近更新 更多