2014-01-22 3 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; 
    } 
} 

Это страница, которая будет содержать другое название. Проблема здесь заключается в том, что я не могу поставить любой Text View, потому что я расширил фрагмент класса, а не Activity.In этот файл вместо сделать петлю, что я умру в 11 раз до страницы, генерируемой

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

Наконец, является основным видом деятельности

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 сделать

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"); 
Смежные вопросы