2013-09-30 2 views
0

Я реализовал FragmentPagerAdapter с 4 вкладками, и я связал фрагмент с каждым из них. Проблема заключается в том, что я не могу взаимодействовать с элементами, которые они содержат, я попытался следующие:Взаимодействие с элементами из FragmentPagerAdapter

 @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     super.onCreateView(inflater, container, savedInstanceState); 

     View view = inflater.inflate(R.layout.fragment1, container, false); 

     // Some codes for layout such as findViewById 
     ImageView img = (ImageView)findViewById(R.id.image); 
     img.setOnClickListener(new ImageView.OnClickListener() { 
      public void onClick(View v) { 
       Log.i("Fragment", "This is a test"); 
      } 
     }); 

     return view; 
    } 

Этот метод в классе, который наследуется от «Фрагмент» и загрузки одного из макетов, имеющий 4 классов тот же тип, что и один, по одному для каждой вкладки.

Не удается найти метод findViewById, но если я не могу его выложить там, где его поместить?

спасибо.

Продолжая пример, у меня возникла новая проблема. Один из видов загружает GridView с изображениями следующим образом:

 @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     super.onCreateView(inflater, container, savedInstanceState); 

     View view = inflater.inflate(R.layout.init, container, false); 

     final GridView grid = (GridView)view.findViewById(R.id.myGrid);    
     grid.setNumColumns(2); 
     grid.setAdapter(new ImageAdapter(this)); 

     return view; 
    } 

Проблема заключается в том, что метод «новый ImageAdapter (контекст)» принимает в качестве параметра переменную типа контекста, чтобы загрузить в метод «newImageView (контекст) ', что он нуждается в этом типе переменной и передает «это» переменная типа Фрагмент, но не Контекст, по каким ошибкам я могу исправить?

Заранее спасибо.

ответ

0

Когда вы обращаетесь к любому виджету из накачанного зрения, вы должны получить их с уважением, что отобразив только

Измените эту строку

ImageView img = (ImageView)findViewById(R.id.image); 

к этому

ImageView img = (ImageView) view.findViewById(R.id.image); 

комментарий мне о

+0

OK, хорошо. Теперь это работает. Имейте много логики, о которой вы говорили, и я не знаю, заметила бы я, спасибо вам большое. – KryNaC