0
私はRecyclerView
にデータリストを表示しています。私がしたいことは、ユーザーがそのアイテムをタップしたときに、そのユーザーとのリンクを解除するかどうかを尋ねるときです。私はこれをアプリケーションのさまざまな時点ですでに行っており、完全に機能することに基づいてこのコードを書いていますRecyclerView
OnItemTouchListener
ですが、これは何らかの理由でこれをクリックして登録することを拒否しています。データにはRecyclerView
が入力されます。クリックすることはできません。明白な何かを逃したことがありますか?Android RecyclerView OnItemTouchListenerが機能しない
public void configurePage() {
Log.d(TAG, "test = " + listOfIDs.size());
mLayoutManager = new LinearLayoutManager(AgentViewUsers.this);
mAdapter = new AgentUserViewAdapter(listOfItems);
mRecyclerView.addOnItemTouchListener(new RecyclerTouchListener(getApplicationContext(), mRecyclerView, new RecyclerItemClickListener() {
@Override
public void onClick(View view, int position) {
AlertDialog.Builder build = new AlertDialog.Builder(AgentViewUsers.this);
build.setTitle("Unlink this user?");
build.setMessage("Are you sure you wish to unlink this user?");
build.setNegativeButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
// database code that deletes that user from firebase.
}
});
build.setPositiveButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
});
}
@Override
public void onLongClick(View view, int position) {
}
}));
mRecyclerView.addItemDecoration(new DividerItemDecoration(AgentViewUsers.this,DividerItemDecoration.VERTICAL_LIST));
mRecyclerView.setLayoutManager(mLayoutManager);
mRecyclerView.setAdapter(mAdapter);
spinner.setVisibility(View.GONE);
// for loop that populates listOfItems from an already populated listOfIDs;
}
なぜ、ビューホルダーアダプターにonclickを入れようとしないのですか? –
私が知っている限り、Firebaseと対話するために様々なビットを行うためにOnClickが必要であり、このアクティビティにのみ存在するかなりの量のコンテンツに依存しているため、この場合はできません。これは、私がアプリケーションのいくつかの他の場所でこれを行ってきた方法であり、ここ以外のどこかで意図したとおりに動作します。 – markeh21
ランダムなコメントです。そのAlertDialogでshow()を呼び出すことをお勧めします。また、リストアイテムのカスタムレイアウトを使用していて、そのレイアウトに異なる州のための異なるドロウアブルがない(プレスされた、リリースされた) –