Android cardview place specific card at the end of the list












0















I'm making an app where user-input tasks are shown in cardview. Each tasks have their own due dates and when the due date is up, it will show up at the bottom of the list.



In the code below,
The due dates are passed via my task object class. After comparing due dates (.getTaskDate) with current date, I should put the overdue task at the bottom here.



Inside my adapter:



        //Overdue tasks
String Currdate = new SimpleDateFormat("dd-MM-yyyy", Locale.getDefault()).format(new Date());

if(Currdate.compareTo(tasks.getTaskDate())>0 )
{
taskViewHolder.cardView.setBackgroundColor(mContext.getResources().getColor(R.color.colorRed));


}


How should I implement this feature and is it done inside the MainActivity or my Adapter? I have similar date sorting feature which sorts the date in ascending order inside my MainActivity :



    private static void sortDates(final List<TaskObject> listViewItems) {
Collections.sort(listViewItems, new Comparator<TaskObject>() {
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");

@Override
public int compare(TaskObject t1, TaskObject t2) {

try {
return dateFormat.parse(t1.getTaskDate()).compareTo(dateFormat.parse(t2.getTaskDate()));
} catch (ParseException e) {
e.printStackTrace();
}

return 0;
}
});
}


enter image description here










share|improve this question

























  • What is the output with this code?

    – RoyalGriffin
    Nov 24 '18 at 6:46













  • Hi, I have added a screenshot of my current output. The red card (Overdue) should be at the end of the card list.

    – Brandon Bong
    Nov 24 '18 at 6:54
















0















I'm making an app where user-input tasks are shown in cardview. Each tasks have their own due dates and when the due date is up, it will show up at the bottom of the list.



In the code below,
The due dates are passed via my task object class. After comparing due dates (.getTaskDate) with current date, I should put the overdue task at the bottom here.



Inside my adapter:



        //Overdue tasks
String Currdate = new SimpleDateFormat("dd-MM-yyyy", Locale.getDefault()).format(new Date());

if(Currdate.compareTo(tasks.getTaskDate())>0 )
{
taskViewHolder.cardView.setBackgroundColor(mContext.getResources().getColor(R.color.colorRed));


}


How should I implement this feature and is it done inside the MainActivity or my Adapter? I have similar date sorting feature which sorts the date in ascending order inside my MainActivity :



    private static void sortDates(final List<TaskObject> listViewItems) {
Collections.sort(listViewItems, new Comparator<TaskObject>() {
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");

@Override
public int compare(TaskObject t1, TaskObject t2) {

try {
return dateFormat.parse(t1.getTaskDate()).compareTo(dateFormat.parse(t2.getTaskDate()));
} catch (ParseException e) {
e.printStackTrace();
}

return 0;
}
});
}


enter image description here










share|improve this question

























  • What is the output with this code?

    – RoyalGriffin
    Nov 24 '18 at 6:46













  • Hi, I have added a screenshot of my current output. The red card (Overdue) should be at the end of the card list.

    – Brandon Bong
    Nov 24 '18 at 6:54














0












0








0








I'm making an app where user-input tasks are shown in cardview. Each tasks have their own due dates and when the due date is up, it will show up at the bottom of the list.



In the code below,
The due dates are passed via my task object class. After comparing due dates (.getTaskDate) with current date, I should put the overdue task at the bottom here.



Inside my adapter:



        //Overdue tasks
String Currdate = new SimpleDateFormat("dd-MM-yyyy", Locale.getDefault()).format(new Date());

if(Currdate.compareTo(tasks.getTaskDate())>0 )
{
taskViewHolder.cardView.setBackgroundColor(mContext.getResources().getColor(R.color.colorRed));


}


How should I implement this feature and is it done inside the MainActivity or my Adapter? I have similar date sorting feature which sorts the date in ascending order inside my MainActivity :



    private static void sortDates(final List<TaskObject> listViewItems) {
Collections.sort(listViewItems, new Comparator<TaskObject>() {
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");

@Override
public int compare(TaskObject t1, TaskObject t2) {

try {
return dateFormat.parse(t1.getTaskDate()).compareTo(dateFormat.parse(t2.getTaskDate()));
} catch (ParseException e) {
e.printStackTrace();
}

return 0;
}
});
}


enter image description here










share|improve this question
















I'm making an app where user-input tasks are shown in cardview. Each tasks have their own due dates and when the due date is up, it will show up at the bottom of the list.



In the code below,
The due dates are passed via my task object class. After comparing due dates (.getTaskDate) with current date, I should put the overdue task at the bottom here.



Inside my adapter:



        //Overdue tasks
String Currdate = new SimpleDateFormat("dd-MM-yyyy", Locale.getDefault()).format(new Date());

if(Currdate.compareTo(tasks.getTaskDate())>0 )
{
taskViewHolder.cardView.setBackgroundColor(mContext.getResources().getColor(R.color.colorRed));


}


How should I implement this feature and is it done inside the MainActivity or my Adapter? I have similar date sorting feature which sorts the date in ascending order inside my MainActivity :



    private static void sortDates(final List<TaskObject> listViewItems) {
Collections.sort(listViewItems, new Comparator<TaskObject>() {
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");

@Override
public int compare(TaskObject t1, TaskObject t2) {

try {
return dateFormat.parse(t1.getTaskDate()).compareTo(dateFormat.parse(t2.getTaskDate()));
} catch (ParseException e) {
e.printStackTrace();
}

return 0;
}
});
}


enter image description here







java android sorting date calendar






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 24 '18 at 6:53







Brandon Bong

















asked Nov 24 '18 at 6:20









Brandon BongBrandon Bong

267




267













  • What is the output with this code?

    – RoyalGriffin
    Nov 24 '18 at 6:46













  • Hi, I have added a screenshot of my current output. The red card (Overdue) should be at the end of the card list.

    – Brandon Bong
    Nov 24 '18 at 6:54



















  • What is the output with this code?

    – RoyalGriffin
    Nov 24 '18 at 6:46













  • Hi, I have added a screenshot of my current output. The red card (Overdue) should be at the end of the card list.

    – Brandon Bong
    Nov 24 '18 at 6:54

















What is the output with this code?

– RoyalGriffin
Nov 24 '18 at 6:46







What is the output with this code?

– RoyalGriffin
Nov 24 '18 at 6:46















Hi, I have added a screenshot of my current output. The red card (Overdue) should be at the end of the card list.

– Brandon Bong
Nov 24 '18 at 6:54





Hi, I have added a screenshot of my current output. The red card (Overdue) should be at the end of the card list.

– Brandon Bong
Nov 24 '18 at 6:54












1 Answer
1






active

oldest

votes


















0














Just reverse your sorting and you are done. Change the return statement in the comparator to



return dateFormat.parse(t2.getTaskDate()).compareTo(dateFormat.parse(t1.getTaskDate()));





share|improve this answer
























  • but I only wanted the Overdue task to appear at the bottom, the rest are sorted in ascending order.. that's the problem couldn't figure out

    – Brandon Bong
    Nov 24 '18 at 7:03











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53455711%2fandroid-cardview-place-specific-card-at-the-end-of-the-list%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









0














Just reverse your sorting and you are done. Change the return statement in the comparator to



return dateFormat.parse(t2.getTaskDate()).compareTo(dateFormat.parse(t1.getTaskDate()));





share|improve this answer
























  • but I only wanted the Overdue task to appear at the bottom, the rest are sorted in ascending order.. that's the problem couldn't figure out

    – Brandon Bong
    Nov 24 '18 at 7:03
















0














Just reverse your sorting and you are done. Change the return statement in the comparator to



return dateFormat.parse(t2.getTaskDate()).compareTo(dateFormat.parse(t1.getTaskDate()));





share|improve this answer
























  • but I only wanted the Overdue task to appear at the bottom, the rest are sorted in ascending order.. that's the problem couldn't figure out

    – Brandon Bong
    Nov 24 '18 at 7:03














0












0








0







Just reverse your sorting and you are done. Change the return statement in the comparator to



return dateFormat.parse(t2.getTaskDate()).compareTo(dateFormat.parse(t1.getTaskDate()));





share|improve this answer













Just reverse your sorting and you are done. Change the return statement in the comparator to



return dateFormat.parse(t2.getTaskDate()).compareTo(dateFormat.parse(t1.getTaskDate()));






share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 24 '18 at 6:56









RoyalGriffinRoyalGriffin

8071414




8071414













  • but I only wanted the Overdue task to appear at the bottom, the rest are sorted in ascending order.. that's the problem couldn't figure out

    – Brandon Bong
    Nov 24 '18 at 7:03



















  • but I only wanted the Overdue task to appear at the bottom, the rest are sorted in ascending order.. that's the problem couldn't figure out

    – Brandon Bong
    Nov 24 '18 at 7:03

















but I only wanted the Overdue task to appear at the bottom, the rest are sorted in ascending order.. that's the problem couldn't figure out

– Brandon Bong
Nov 24 '18 at 7:03





but I only wanted the Overdue task to appear at the bottom, the rest are sorted in ascending order.. that's the problem couldn't figure out

– Brandon Bong
Nov 24 '18 at 7:03




















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53455711%2fandroid-cardview-place-specific-card-at-the-end-of-the-list%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Create new schema in PostgreSQL using DBeaver

Deepest pit of an array with Javascript: test on Codility

Costa Masnaga