【问题标题】:Fragments and setting up OnItemClickListener片段和设置 OnItemClickListener
【发布时间】:2015-09-15 11:21:29
【问题描述】:

我有一个片段项目。在主片段上,我有一个包含项目(与图片相关)的列表,它是通过使用自定义适配器生成的,我认为我需要使用 OnItemClickListener 来使单击项目进入另一个活动。下面是我的 HomeFragment 类的片段,这里是我要创建 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();    }

}

【问题讨论】:

    标签: android android-fragments android-arrayadapter onitemclicklistener


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      是的。你必须使用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.
          }
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-29
        • 2014-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多