簡體   English   中英

ListView onScrollListener不起作用

[英]ListView onScrollListener doesn't work

我有個問題。 我的onScrollListener不起作用,而onItemClickListener就在onScrollListener完全正常工作之后。 這是我的代碼:

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

        list = (ListView) view.findViewById(R.id.list);

        list.setOnScrollListener(new ListView.OnScrollListener() {

            @Override
            public void onScrollStateChanged(AbsListView view, int scrollState) {

            }

            @Override
            public void onScroll(AbsListView view, int firstVisibleItem,
                                 int visibleItemCount, int totalItemCount) {
                Log.d("SCROLL", "SCROLL");
            }
        });

list.setOnItemClickListener( new ListView.OnItemClickListener()
    {
        @Override
        public void onItemClick(AdapterView<?> arg0, View view,
                                int position, long id) {
            mediaPlayerStart(position);
        }
    });

}

這是我的XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/list"
        android:layout_alignParentBottom="true" />

</RelativeLayout>

UPD:我加入了吐司。 依然沒有。 也許原因可能是Tracks是片段?

公共類MainActivity擴展AppCompatActivity {public ListView list;

ArrayList<String> listItems=new ArrayList<String>();

//DEFINING A STRING ADAPTER WHICH WILL HANDLE THE DATA OF THE LISTVIEW
ArrayAdapter<String> adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);



    list = (ListView)findViewById(R.id.listView);

for(int i=0;i<20;i++) {

listItems.add(" "+String.valueOf(i));
}
    adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,listItems);
    adapter.notifyDataSetChanged();
    list.setAdapter(adapter);
    list.setOnScrollListener(new ListView.OnScrollListener() {

        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {
            Log.d("SCROLL", String.valueOf(scrollState));
        }

        @Override
        public void onScroll(AbsListView view, int firstVisibleItem,
                             int visibleItemCount, int totalItemCount) {
        //    Log.d("SCROLL", "SCROLL");
        }
    });

    list.setOnItemClickListener( new ListView.OnItemClickListener()
    {
        @Override
        public void onItemClick(AdapterView<?> arg0, View view,
                                int position, long id) {
          //  mediaPlayerStart(position);
            Log.d("Click", String.valueOf(position));
        }
    });

}

試試這個代碼....它會幫助你..

對於吐司,請確保您調用toast.show()否則它將不會顯示。

還要確保包含此片段的Activity正確添加它:

例如-

getFragmentManager().beginTransaction().add(R.id.container, new yourFragment()).commit();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM