从ListView项目导航到片段

时间:2013-12-02 14:57:55

标签: android listview android-listview android-fragments

我正在尝试从ListView项目导航到片段。 Fragment和ListView都是TabsAdapter的一部分。

我试过这个:

    @Override
public void onListItemClick(ListView l, View v, int position, long id)
{

    // Set up different intents based on the item clicked: 
    switch (position)
    {
    case 0:  
        Intent newActivity = new Intent(l.getContext(), Fragment_2.class);     
        startActivityForResult(newActivity, 0);
        break;

    }

}

和这个

    case 0:  
    Intent newActivity = new Intent(getActivity(), Fragment_2.class);     
    startActivityForResult(newActivity, 0);
    break;

在选择位置0上的项目后,两者都会导致我的应用程序在模拟器中关闭。

谢谢你, 基督教

2 个答案:

答案 0 :(得分:1)

如果你想让你的新片段看起来像你的其他片段,我推荐这种方法:

Fragment newFragment = new MyNewFragmentClass();
FragmentTransaction transaction = getFragmentManager().beginTransaction();

// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack
transaction.replace(R.id.my_current_layout, newFragment);
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
transaction.addToBackStack(null);

// Commit the transaction
transaction.commit();

我自己也有同样的问题:New fragment in actionBar

答案 1 :(得分:0)

由于列表视图也是片段的一部分,您可以通过以下方式进行操作:

<强> 1 即可。收听项目单击片段中列表的监听器(我认为,您已经完成)。但是,不是简单地创建一个Activity,而是传递一个Bundle消息来传递Tab位置。

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
     switch (position) {
         case 0:  
           Intent newActivityIntent = new Intent(getActivity(), Fragment_2.class); 
           newActivityIntent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
           newActivityIntent.putExtra("tabToStart", "2"); //Pass the desired tab no. 
           startActivity(fragmentIntent);
           break;
      }
}

<强> 2 即可。在父活动的Oncreate()方法中(包含片段1和片段2),您必须使用getIntent()获取包邮件,并相应地更改标签位置。

Intent intLoc = getIntent();
String loc = intLoc.getStringExtra("tabToStart");
if (loc.equals("2")) {
    mViewPager.setCurrentItem(2);
}

如果需要进一步的详细信息,请告诉我。

相关问题