片段android中的ListView

时间:2016-07-09 06:53:49

标签: android listview android-fragments android-listfragment

如何获取列表项位置? 我只是想学习片段。我在developer.android.com上看到了ListFragment的例子,但我很难理解。

所以我在ListView中使用了Fragment但是当我点击这些项目时,我无法获得它的位置。我怎么能得到它?

public class Fragment_listview extends Fragment implements AdapterView.OnItemClickListener {

    ListView listView;
    String[] days={"Sun","Mon","Tue"};
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment,container,false);
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        listView= (ListView) getActivity().findViewById(R.id.listview);
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,days);
        listView.setAdapter(adapter);
    }

    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

            Toast.makeText(getActivity(), "Position "+i, Toast.LENGTH_SHORT).show();


    }
}

2 个答案:

答案 0 :(得分:3)

您需要将听众设置为ListView

listView.setOnItemClickListener(this);

答案 1 :(得分:1)

要完成这项工作,通常需要致电setOnItemClickListener上的ListView。其回调函数包括作为参数单击的视图的位置。这是一个例子:

myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

    public void onItemClick(AdapterView parent, View v, int position, long id){

        // DO STUFF HERE

    }
});

由于您的Activity已经实施AdapterView,您只需将OnItemClickListener的{​​{1}}设置为listView本身,如下所示

Activity

免责声明:从here

获取此答案的一部分