简体   繁体   中英

How to set onItemClickListener for ListView in a fragment?

I try do it with below code but it not working! Please help me... I am confused ... In below code all things is good but onItemClickListener is useless and it is in onCreateView method is wrong? My items layout is not problem..

public class favFrg extends Fragment {

    View v;
    ListView listView;
    List<HashMap<String,Object>> listFav;
    DatabaseManager dbManager;

    public favFrg() {

        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        v= inflater.inflate(R.layout.fragment_fav_frg, container, false);
        listView= v.findViewById(R.id.listViewFav);

        dbManager=new DatabaseManager(getContext());
        dbManager.openDB();

        listFav=dbManager.getStoryFavorite();
        dbManager.closeDB();

        String[] keys={"id","txtName"};
        int[] resources={R.id.favTxtViewNumberStory,R.id.favTxtViewTitleStory};

        SimpleAdapter adapter=new SimpleAdapter(getContext(),listFav,R.layout.fav_item_layout,keys,resources);

        listView.setAdapter(adapter);
        Log.i("ListView","Adapter Set");

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Log.i("ListView","click item");




                Toast.makeText(getActivity(),"Clicked",Toast.LENGTH_SHORT).show();


            }
        });



        Log.i("ListView","Return View");
        return  v;
    }


    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


    }

代替getContext()在为listview创建适配器时使用container.getContext()

Just Only clickable and focusable attr in my item layout should be false... and works for me

https://code.i-harness.com/en/q/1561bd1

尝试将SimpleAdapter设置为公共变量,并将其放在onCreateView类的外部

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM