Android OnItemClickListener无法在Fragment中运行

时间:2015-11-16 01:37:55

标签: android listview android-fragments

我在本网站上查看了有关此问题的所有问题,并尝试了所有解决方案,但没有任何效果,所以我提出这个问题是为了发布我的特定代码。

我有一个扩展ListFragment(android.support.v4.app.ListFragment)的片段,它包含三个按钮和一个ListView,ListView没有任何可以窃取焦点的自定义视图,它只是一个使用创建的ListView一个ArrayAdapter。 onCreateView()方法如下所示:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_scoring, container, false);

    scrabbleGame = new Scrabble();
    Bundle bundle = getArguments();
    ArrayList<String> playerList = bundle.getStringArrayList("Player List");

    for(String playerName : playerList){
        Player player = new Player(playerName, scrabbleGame);
        scrabbleGame.addPlayer(player);
    }



    players = (ListView) view.findViewById(android.R.id.list);
    adapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_list_item_1, scrabbleGame.getPlayerNames());
    players.setAdapter(adapter);
    players.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
            Toast.makeText(getContext(), "Click registered", Toast.LENGTH_LONG).show();
            String playerName = players.getItemAtPosition(position).toString();
            Player player = scrabbleGame.getPlayerByName(playerName);
            mListener.onFragmentInteraction(player, scrabbleGame);
        }
    });

    return view;
}

当我单击列表中的某个项目时,没有任何反应,事件/侦听器永远不会被触发,它永远不会触及该行。没有错误出现。只是没有任何反应。

如果我在本网站上找到其他问题的解决方案,我不会问这个问题,所以请不要将此标记为重复。

我已经修好了。将其更改为扩展正常片段,现在可以正常工作

1 个答案:

答案 0 :(得分:0)

有类似的问题。通过在列表项XML中的LinearLayout中添加以下内容来解决该问题:

android:descendantFocusability="blocksDescendants"