2015-11-27 1 views
0

Я пытаюсь создать галерею плакатов фильмов, когда пользователь нажимает элемент на галерее, появляется название изображения.Как получить доступ к свойствам объекта изнутри OnItemClickListener

Я использовал пользовательские ArrayAdapter связать изображения с grideview

MoviePoster класс следующим образом:

public class MoviePoster { 


    String title; 
    int image; 

    public MoviePoster(int image, String title) { 
     this.image = image; 
     this.title = title; 
    } 
    public MoviePoster(){ 

    } 
} 

здесь MainACtivity и список изображений.

public class MainActivityFragment extends Fragment { 
    private MovieAdapter movieAdapter; 


    MoviePoster[] posters ={ 
      new MoviePoster(R.drawable.ironman, "ironman"), 
      new MoviePoster(R.drawable.jobs, "jobs"), 
      new MoviePoster(R.drawable.superman,"superman"), 
      new MoviePoster(R.drawable.terminator, "terminator"), 
      new MoviePoster(R.drawable.batman, "batman"), 
      new MoviePoster(R.drawable.linux, "linux"), 
      new MoviePoster(R.drawable.madara, "madara"), 

    }; 


    public MainActivityFragment() { 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     final View rootView = inflater.inflate(R.layout.fragment_main, container, false); 

     movieAdapter = new MovieAdapter(getActivity(), Arrays.asList(posters)); 
     GridView gridView = (GridView) rootView.findViewById(R.id.MoviesGrid); 
     gridView.setAdapter(movieAdapter); 

     gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 

       Toast.makeText(getActivity(), "need to show image title here???",Toast.LENGTH_LONG).show(); 
      } 
     }); 
     return rootView; 
    } 
} 

Я просто не знаю, как вызвать изображение изображения для каждого элемента. может кто поможет?

+2

'MoviewPoster poster = (MoviewPoster) adapterView.getItemAtPosition (position);' – Blackbelt

+0

Не могли бы вы объяснить это, где я могу использовать эту строку кода? @Blackbelt –

+0

вы можете показать свой класс адаптера @Mohamed Ibrahim –

ответ

2

как вспомнить название изображения для каждого элемента

ли это с помощью i параметра onItemClick метода, который является положение щелкнули элемента в GridView:

public void onItemClick(AdapterView<?> adapterView, View view, 
               int i, long l) { 
    MoviewPoster poster = posters[i]; 
    String strTitle=poster. title; 
    } 

Или мы можем это сделать используя метод getItemAtPosition, как предложено в комментариях.

+0

спасибо, он работает –