私はSwipeRefreshLayoutを実装しているので、レイアウトがリフレッシュされている間にユーザーのやりとりを無効にしたい。 ListViewアイテムのOnClickListenerを実装しました。次のエラーが発生するAndroidでlistviewを更新するときにlistviewアイテムのonclickListenerを無効にするにはどうすればよいですか?
java.lang.RuntimeException:AdapterViewにsetOnClickListenerをコールしないでください。おそらく、setOnItemClickListenerを android.widget.AdapterView.setOnClickListener(AdapterView.java:791) にする必要があります。listView.setOnClickListener(null); onRefresh()メソッドにあります。
この問題を解決する方法。ここで
はのonCreate(の私のswipeRefreshLayoutである)ここで
swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh_layout);
swipeRefreshLayout.setColorSchemeColors(Color.GRAY, Color.GREEN, Color.BLUE, Color.RED, Color.CYAN);
swipeRefreshLayout.setDistanceToTriggerSync(20);// in dips
swipeRefreshLayout.setSize(SwipeRefreshLayout.DEFAULT);// LARGE also can be used
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
//Refreshing data on server
listView.setOnClickListener(null);
GetDataTask asyncTask2 = new GetDataTask();
asyncTask2.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
});
は(onRefreshに呼び出すwhichis私AsyncTaskである)方法
private class GetDataTask extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... arg0)
{
currentPage = 1;
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
GetAllActivityList(currentPage);
Loaddata();
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
if (swipeRefreshLayout.isRefreshing())
{
swipeRefreshLayout.setRefreshing(false);
populateList(OFFSET);
}
}
}
ここでエラーログ情報があります。
java.lang.RuntimeException: Don't call setOnClickListener for an AdapterView. You probably want setOnItemClickListener instead
at android.widget.AdapterView.setOnClickListener(AdapterView.java:791)
at com.example.tazeen.classnkk.CustomActionActivity$7.onRefresh(CustomActionActivity.java:563)
at android.support.v4.widget.SwipeRefreshLayout$1.onAnimationEnd(SwipeRefreshLayout.java:168)
at android.support.v4.widget.CircleImageView.onAnimationEnd(CircleImageView.java:107)
at android.view.ViewGroup.finishAnimatingView(ViewGroup.java:6104)
at android.view.View.draw(View.java:16122)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.draw(View.java:16181)
at android.view.View.updateDisplayListIfDirty(View.java:15174)
at android.view.View.draw(View.java:15948)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.updateDisplayListIfDirty(View.java:15169)
at android.view.View.draw(View.java:15948)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.updateDisplayListIfDirty(View.java:15169)
at android.view.View.draw(View.java:15948)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.updateDisplayListIfDirty(View.java:15169)
at android.view.View.draw(View.java:15948)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.updateDisplayListIfDirty(View.java:15169)
at android.view.View.draw(View.java:15948)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.draw(View.java:16181)
at com.android.internal.policy.PhoneWindow$DecorView.draw(PhoneWindow.java:2690)
at android.view.View.updateDisplayListIfDirty(View.java:15174)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:281)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:287)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:322)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2615)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2434)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2067)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
at android.view.Choreographer.doCallbacks(Choreographer.java:670)
at android.view.Choreographer.doFrame(Choreographer.java:606)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
は、あなたはそれが、実際にあなたがSwiperefreshLayoutを使用している場合は、リストビューをクリックまたはタッチリスナーを無効にする必要はありません、あなたのXMLファイル – Awadesh
を投稿することができます私たちが垂直にスワイプしたときに触れると、タッチとは何も関係がありません。 – Awadesh