如何从OnItemClickListener内部访问对象属性

时间:2015-11-27 11:48:42

标签: android android-arrayadapter 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;
    }
}

我只是不知道如何回忆每个项目的图像标题。谁能帮忙?

1 个答案:

答案 0 :(得分:2)

  

如何调用每个项目的图像标题

使用i方法的onItemClick参数执行此操作,该方法是GridView中单击项的位置:

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

或者我们也可以使用评论中建议的getItemAtPosition方法来执行此操作。