2014-01-22 64 views
1

我是Android新手,我觉得很复杂。我正在制作一个小应用程序,以更好地理解活动和片段的操作。我的目标是拥有10个屏幕。这些屏幕还必须包含与其他图像不同的图像上的字符串。这是我的关于第一个片段的类的代码,它将具有蓝色背景。带片段的活动

package pl.looksok.viewpagerdemo; 

import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.Toast; 
import android.support.v4.app.Fragment; 

public class FragmentBlue extends Fragment { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.fragment_blue, container, false); 
     return view; 
    } 
} 

这将是包含不同名称的页面。这里的问题是,我不能把任何文本查看,因为我扩展的类片段而不是Activity.In这个文件,而不是做一个循环,我产生

package pl.looksok.viewpagerdemo; 

import java.util.ArrayList; 
import java.util.List; 

import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentPagerAdapter; 
import android.widget.Button; 

public class MyPagerAdapter extends FragmentPagerAdapter { 

    private List<Fragment> fragments; 

    public MyPagerAdapter(FragmentManager fm) { 
     super(fm); 
     this.fragments = new ArrayList<Fragment>(); 

     for(int i = 0; i<=10; i++){ 
      fragments.add(new FragmentBlue()); 
     } 
    } 

    @Override 
    public Fragment getItem(int position) { 
     return fragments.get(position); 
    } 

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

最后的页面之前死亡的11倍,这是主要活动

package pl.looksok.viewpagerdemo; 

    import android.os.Bundle; 
    import android.support.v4.app.FragmentActivity; 
    import android.support.v4.view.ViewPager; 

public class MainActivity extends FragmentActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     MyPagerAdapter pageAdapter = new MyPagerAdapter(getSupportFragmentManager()); 
     ViewPager pager = (ViewPager)findViewById(R.id.myViewPager); 
     pager.setAdapter(pageAdapter); 
    } 
} 

我会认为每个活动都有一个文本视图,为每个页面模具不同的结果。谁知道如何帮助我?感谢

回答

0

试试这个

List<Fragment> fragments ; 
fragments = new Vector<Fragment>(); 
for(int i = 0; i<=10; i++){ 
      fragments.add(Fragment.instantiate(this, FragmentBlue.class.getName())); 
     } 
0

在您的片段类中创建一个静态方法来获得与颜色,图像和所需的文本片段...

public static Fragment getFragmentWithColorImageAndText(int color, int imageRes, String text) { 
    Bundle bundle = new Bundle(); 
    bundle.putInt("color",color); 
    bundle.putInt("image",image); 
    bundle.putString("text",text); 
    YourFragment fragment = new YourFragment(); 
    fragment.setArguments(bundle); 
    return fragment; 
} 

然后在片段的onCreate或onCreateView do

Bundle bundle = getArguments(); 
String text = bundle.getString("text"); 
YOUR_TEXTVIEW.setText(text); 

...与颜色相同(setBackground ...)和图像...(YOUR_IMAGEVIEW.set图像...)

现在,当你想创建你只需要做一个片段......

YourFragment.getFragmentWithColorImageAndText(Color.BLUE, R.drawable.imageRes, "Hello World");