私はgridlayoutmanager.Iでカードビューを持っています。スワイプで実装されています。つまり、カードをスワイプすると、私のアプリケーションはうまくいきました。パフォーマンスを向上させる新しいスレッド。 私がそれをやったとき、カードは取り除かれていますが、2〜3秒後に再び表示されます。最初に カードをスワイプすると、解散し、次のカードが表示されます。新しいRunnableスレッドカードでスワイプした後に削除されない
マイコード:
ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.UP)
{
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target)
{
Toast.makeText(getApplicationContext(), "on Move", Toast.LENGTH_SHORT).show();
return false;
}
@Override
public void onSwiped(final RecyclerView.ViewHolder viewHolder, int swipeDir)
{
Toast.makeText(getApplicationContext(), "Task Status changed to COMPLETE", Toast.LENGTH_LONG).show();
new Thread(new Runnable() {
@Override
public void run() {
String username = getIntent().getStringExtra("username");
String password = getIntent().getStringExtra("password");
try {
restApi=new RallyRestApi(new URI("https://rally1.rallydev.com"),username,password);
JsonObject updatedValues = new JsonObject();
updatedValues.addProperty("State", "Completed");
UpdateRequest taskUpdate = new UpdateRequest(data_list.get(viewHolder.getAdapterPosition()).getRef(), updatedValues);
restApi.update(taskUpdate);
data_list.remove(viewHolder.getAdapterPosition());
adapter.notifyDataSetChanged();
} catch (URISyntaxException | IOException e) {
e.printStackTrace();
}
}
});
}
};
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleItemTouchCallback);
itemTouchHelper.attachToRecyclerView(recyclerView);