gedruckt wurde. Ich habe eine Weile gesucht und daran gearbeitet, aber ich kann einfach nicht den besten Weg finden dies zu tun. Also in meiner Android-App habe ich zwei Arraylist. Eines, das die Tage hält und ein anderes, das Gegenstände enthält, die an diesen Tagen gekauft wurden. Was ich tun möchte, ist dies in eine Textansicht zur Anzeige auszudrucken. Ich denke daran, eine Zeichenfolge zu verwenden, um das aktuelle Datum zu halten und zu sehen, ob es dem vorherigen Datum entspricht. Wenn es dann nicht gedruckt wird, drucken Sie einfach das "" und das Element direkt daneben. Die Liste basiert auf den Zeiten, nicht auf den Daten. Daher ist die Array-Liste von Daten in einigen Fällen identisch. So würde Ich mag es so etwas wie diesesWie bestimmt man, ob Daten in einer Array-Liste gedruckt oder nicht ausgedruckt werden sollen, wenn der gleiche Wert vor
2016/12/1 Item1
Item2
Item3
2016/01/3 Item1
Item2
2016/02/25 Item1
aber jetzt ist es ist wie diese
2016/12/1 Item1
2016/12/1 Item2
2016/12/1 Item3
2016/01/3 Item1
2016/01/3 Item2
2016/02/25 Item1
Dies ist, was ich bisher:
public class MainActivity extends AppCompatActivity {
ArrayList<String> myDates = new ArrayList<String>();
ArrayList<String> myProducsts = new ArrayList<String>();
TextView dates, products;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dates = (TextView)findViewById(R.id.dates);
products = (TextView)findViewById(R.id.products);
//for total of 5 orders
myPurchase first, second, thrid, fourth, fifth;
myDates.add("2016/3/30:");
myDates.add("2016/3/30:");
myDates.add("2016/3/30:");
myDates.add("2016/3/30:");
myDates.add("2016/3/30:");
myDates.add("2016/4/8:");
myDates.add("2016/4/8:");
myProducsts.add("Item1");
myProducsts.add("Item2");
myProducsts.add("Item3");
myProducsts.add("Item4");
myProducsts.add("Item5");
myProducsts.add("Item6");
myProducsts.add("Item7");
for(int i = 0; i < myDates.size(); i++)
{
String next = myDates.get(i);
String nextPro = myProducsts.get(i) + "\n";
dates.append(next + nextPro);
}
}
Danke für jede Hilf dabei.
Fast. 'currentDate' sollte als 'null' beginnen. Siehe meine vorgeschlagene Änderung. – GoGoCarl
Oh guter Fang. (Eigentlich sollte es als leere Zeichenfolge beginnen, um einen Nullzeiger zu vermeiden :)) –
Eigentlich würde ich die Gleichheitsüberprüfung invertieren. Gegeben, dass next nicht-null ist, überprüfe, ob 'next.equals (currentDate)' anstelle von 'currentDate.equals (next)' ... jetzt, keine NPE. – GoGoCarl