Android - ListView - performItemClick

前端 未结 24 1298
清歌不尽
清歌不尽 2020-11-29 03:10

I\'m facing some difficults when I try to use the performItemClick funcion of the ListView.

All I want to do is to perform a click programatically i

24条回答
  •  鱼传尺愫
    2020-11-29 04:00

    myListView.getChildAt(0) returns null because used this very soon.

    use a delay for it.

    or use below code:

    private class MyAdapter extends BaseAdapter
    {
    private final Context context;
    private HashMap views;
    
    public MyAdapter(Context context)
    {
        this.context = context;
        views = new HashMap<>();
    }
    
    @Override
    public View getView(int position, View convertView, ViewGroup parent)
    {
        if(convertView == null)
        {
            if(views.get(position) == null)
            {
                final LayoutInflater layoutInflater = LayoutInflater.from(context);
                convertView = layoutInflater.inflate(R.layout.my_grid, null, false);
    
                views.put(position, convertView);
            }
            else
                convertView = views.get(position);
        }
    
        TextView tv = convertView.findViewById(R.id.langView);
        tv.setText(languageList.get(position));
    
        return convertView;
    }
    }
    

    and

    adapter = new MyAdapter(getActivity());
    myListView.setAdapter(adapter);
    
    Runnable r = new Runnable()
    {
        @Override
        public void run()
        {
            myListView.performItemClick(adapter.getView(position, null, myListView), position, 0);
        }
    };
    
    myListView.postDelayed(r, 100);
    

提交回复
热议问题