2016-01-06 117 views
1

我正在关注此SO answer。但我有错误cannot resolve method setarguments在这条线fragmentActivity setarguments无法解析

  details.setArguments(getIntent().getExtras()); 

这是代码

public class SingleViewActivity extends FragmentActivity { 

    MyPageAdapter pageAdapter; 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_page_view); 

     List<Fragment> fragments = getFragments(); 

     if (savedInstanceState == null) { 
      // During initial setup, plug in the details fragment. 
      MainActivity details = new MainActivity(); 
      details.setArguments(getIntent().getExtras()); 
      getSupportFragmentManager().beginTransaction().add(android.R.id.content, details).commit(); 
     } 
/* 
     pageAdapter = new MyPageAdapter (getSupportFragmentManager(), fragments); 
     ViewPager pager=(ViewPager)findViewById(R.id.viewpager); 
     pager.setAdapter(pageAdapter);*/ 
//  pageAdapter = new MyPageAdapter (getSupportFragmentManager(), fragments); 
     ViewPager pager=(ViewPager)findViewById(R.id.viewpager); 
     pager.setAdapter(pageAdapter); 
    } 
    private List<Fragment> getFragments() { 
     List<Fragment> flist = new ArrayList<Fragment>(); 

     flist = new ArrayList<Fragment>(); 

     flist.add(MyFragment.newInstance("frag1")); 
     flist.add(MyFragment.newInstance("frag2")); 
     flist.add(MyFragment.newInstance("frag3")); 
     return flist; 
    } 
    public static class MyPageAdapter extends PagerAdapter { 
     //private List<Fragment> fragments; 
     Context mContext; 
     LayoutInflater mLayoutInflater; 

     public MyPageAdapter(Context context) 
     { 
      mContext = context; 
      mLayoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

     } 
     @Override 
     public boolean isViewFromObject(View view, Object object) 
     { 
      return view ==((LinearLayout) object); 
     } 
     @Override 
     public Object instantiateItem(ViewGroup container, int position) 
     { 

      View itemView =mLayoutInflater.inflate(R.layout.pager_item,container,false); 
      ImageView imageView= (ImageView) itemView.findViewById(R.id.viewpager); 
      String Item = getActivity().getIntent().getExtras().getString("name"); 

      Bundle bundle = this.getArguments(); 

      //Bundle bundle = getIntent().getExtras(); 

      ArrayList<Listitem> personArrayList = bundle.getParcelableArrayList("Person_List"); 

      if (personArrayList != null && !personArrayList.isEmpty()) { 
       for (Listitem person : personArrayList) { 
        Picasso. 
          with(this). 
          load(person.url) 
          .placeholder(R.drawable.logo) 
          .fit() 
          .noFade() 
          .into(imageView); 
        Log.i("PersonsActivity",String.valueOf(person.url)); 
       } 
      } 

      imageView.setImageResource(); 
      container.addView(itemView); 
      return itemView; 
     } 

     @Override 
     public int getCount() 
     { 
      return this.fragments.size(); 
     } 
    } 

} 
+0

'MainActivity'扩展了什么? 'Fragment'有一个'setArguments()'方法,'FragmentActivity'没有。 – emerssso

回答

1

在你提供的链接,setArguments()拜访了一个片段,而不是活动。

在你的代码尝试添加的活性片段:

MainActivity details = new MainActivity(); 
details.setArguments(getIntent().getExtras()); 
getSupportFragmentManager().beginTransaction().add(android.R.id.content, details).commit(); 

定义一个片段添加到SingleViewActivity并使用它。

+0

感谢您的反馈Alex,我是新的碎片工作人员,我会做更多的例子,'SingleViewActivity'已经有一个名为'MyFragment'的片段,但是如何使用它?我非常感谢你的帮助,让我更了解它 – Moudiz