片段和设置 OnItemClickListener

Fragments and setting up OnItemClickListener

我有一个包含 Fragments 的项目。在主片段上,我有一个包含项目的列表(与图片相关),它是通过使用自定义适配器生成的,我想我需要使用 OnItemClickListener 来点击项目转到另一个 activity。下面是我的 HomeFragment class 的一个片段,这里是我想创建一个 OnItemClickListener 的地方,这可能吗?我怎样才能做到这一点?

public class HomeFragment extends Fragment implements OnClickListener {
    public HomeFragment() {
        // Required empty public constructor
    }
    View rootView;

    @Override
    public void onCreate(final Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

    }


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

        rootView = inflater.inflate(R.layout.fragment_home, container, false);


        RowBean RowBean_data[] = new RowBean[]{
                new RowBean(R.drawable.kamil, "Kamil "),
                new RowBean(R.drawable.bartlomiej, "Bartlomiej "),
                new RowBean(R.drawable.krzysztof, "Krzysztof ")
        };


        CustomAdapter adapter = new CustomAdapter(getActivity().getApplicationContext(), R.layout.list_style, RowBean_data);
        ListView lista = (ListView) rootView.findViewById(R.id.lista);
        lista.setAdapter(adapter);


        return rootView;
    }

    @Override
    public void onAttach(Activity activity) {        super.onAttach(activity);    }

    @Override    public void onDetach() {        super.onDetach();    }

    @Override    public void onClick(View v) {      Toast.makeText(getActivity(), "Works!", Toast.LENGTH_SHORT).show();    }

}

onCreateView 方法中的 return rootView; 语句之前添加以下侦听器

 lista.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {
                 //do stuff
                 Intent intent=new Intent(CurrentActivity.this,AnotherActivty.class);
                 startActivity(intent);
            }
        });

是的。你必须使用 onItemClickListener() 您可以通过以下方式使用它:

listView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
            long id) {
            // You can launch activity here in your case.
    }
});