【问题标题】:How to set onItemClickListener for ListView in a fragment?如何在片段中为 ListView 设置 onItemClickListener?
【发布时间】:2018-09-05 10:39:32
【问题描述】:

我尝试用下面的代码来做,但它不起作用!请帮助我...我很困惑... 在下面的代码中,一切都很好,但 onItemClickListener 没用,它在 onCreateView 中的方法是错误的吗? 我的物品布局没问题..

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


    }

【问题讨论】:

  • 在您的情况下尝试在项目视图“V”上应用点击侦听器
  • 在 listView.setOnItemClickListener() 传递“this”并覆盖 @Override public void onItemClick(AdapterView> parent, View view, int position, long id) { } 并从此处处理点击。
  • 请检查此link 来回答您的问题。
  • 分享你的错误日志

标签: java android listview android-fragments


【解决方案1】:

我的项目布局中只有可点击和可聚焦的属性应该是错误的......并且对我有用

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

【讨论】:

    【解决方案2】:

    使用container.getContext() 代替getContext() 为列表视图创建适配器。

    【讨论】:

      【解决方案3】:

      尝试将 SimpleAdapter 作为公共变量并将其放在 onCreateView 类之外

      【讨论】:

      • 这应该是一条评论。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多