Lagra och visa info i Java
Har du tänkt igenom varför du vill lagra informationen om samma Person i en annan klass?
Hur som helst, några sätt att göra det på, (som kan vara dåliga, inte optimala och göra det jobbigare längre fram)
1. Skapa en Tuple klass som har en Person och en PersonInfo Tuple(Person,PersonInfo) och spara dessa i en lista
ArrayList<Tuple> list = new ArrayList<>();
list.add(new Tuple(new Person("Swe", "Clockers", "4301230000"),
new PersonInfo("Latmask","Tacos","Sven Ingvars")));
for(Tuple t: list){
Person p1 = t.getPerson();
PersonInfo p2 = t.getPersonInfo();
if(p1.getPersonNr() == "6410120000"){
// do something
}
Denna lösning introducerar mer komplikationer när du sedan vill komma åt och redigera ett enskilt objekt, men kan vara okej om du bara vill skriva ut alla personer du har sparat i en lista exempelvis.
2. Stoppa in de två objecten i en Map
Har du tänkt igenom varför du vill lagra informationen om samma Person i en annan klass?
Hur som helst, några sätt att göra det på, (som kan vara dåliga, inte optimala och göra det jobbigare längre fram)
1. Skapa en Tuple klass som har en Person och en PersonInfo Tuple(Person,PersonInfo) och spara dessa i en lista
ArrayList<Tuple> list = new ArrayList<>();
list.add(new Tuple(new Person("Swe", "Clockers", "4301230000"),
new PersonInfo("Latmask","Tacos","Sven Ingvars")));
for(Tuple t: list){
Person p1 = t.getPerson();
PersonInfo p2 = t.getPersonInfo();
if(p1.getPersonNr() == "6410120000"){
// do something
}
Denna lösning introducerar mer komplikationer när du sedan vill komma åt och redigera ett enskilt objekt, men kan vara okej om du bara vill skriva ut alla personer du har sparat i en lista exempelvis.
2. Stoppa in de två objecten i en Map
Tackar
Nja, jag vill ju egentligen kunna skriva ut olika infon i olika lägen, beroende på vad användaren väljer.
1) Visa lista på personer
- Visar namn och pnr på personerna i listan
2) Sök och visa info om en specifik person
- Visar namn, pnr, adress och ålder
3) Sök och visa all info om en specifik person
- Visar allt
4) Redigera information om en specifik person
- Redigerar info-delen
Detta är bara exempel, men jag gör det för att lära mig, så det är inte så noga just vilken info det gäller, mer om HUR jag bäst lagrar, ändrar och visar den.
Tack igen för din hjälp. Väldigt intressant och jag har vips ännu mer att läsa på om, haha.
Tackar
Nja, jag vill ju egentligen kunna skriva ut olika infon i olika lägen, beroende på vad användaren väljer.
1) Visa lista på personer
- Visar namn och pnr på personerna i listan
2) Sök och visa info om en specifik person
- Visar namn, pnr, adress och ålder
3) Sök och visa all info om en specifik person
- Visar allt
4) Redigera information om en specifik person
- Redigerar info-delen
Detta är bara exempel, men jag gör det för att lära mig, så det är inte så noga just vilken info det gäller, mer om HUR jag bäst lagrar, ändrar och visar den.
Tack igen för din hjälp. Väldigt intressant och jag har vips ännu mer att läsa på om, haha.
Just vad du vill visa när du väl har fått tag på rätt element är i sig inget svårt, det svåra när du väljer att dela upp det är ju just att matcha rätt objekt och komma åt dessa på en godkänd tid. Om du vill kan du kika lite på Parse.com, dom kanske endast har till Android och inte vanlig Java, osäker.
Hur som helst, det är i princip en databas där du kan lagra antingen lokalt på enheten eller i deras cloud och sedan göra lite olika roliga saker med den datan. Hur som helst:
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
/*Perform query with input*/
String queryInput = queryText.getText().toString();
ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("Line");
query.whereContains("Number",queryInput);
query.orderByAscending("Number");
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> posts, ParseException e) {
List<PlaceHolderLine> copy = new ArrayList<>();
data = new PlaceHolderLine[posts.size()];
if (e == null) {
Log.d("Found",posts.size() + "elements");
for (int i = 0; i< posts.size(); i++) {
String n =(String) posts.get(i).get("Number");
String d = (String)posts.get(i).get("Direction");
String bg = (String)posts.get(i).get("Bg");
String txt = (String)posts.get(i).get("TextColor");
Log.d("Number & Direction: ",n + " " + d );
data[i] = new PlaceHolderLine(n,d,txt,bg);
}
/*Data should now contain all PlaceHolderLine elements*/
adapter = new LineDisplayAdapter(getContext(),R.layout.line_list_item,data);
queryText.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
Så här ser ett exempel ut, där det är ett textfält där användaren kan mata in siffror. När användaren skriver i textfältet så hämtar den samtidigt matchande objekt från min Parse.com tabell i bakgrunden och visar dessa i en lista.
Du får ursäkta lite kassa variabel och metodnamn, då ingen annan ska se koden Ta inte efter!
Min klass i Parse har då variablerna "Number" , "Direction", "Bg", "TextColor" och jag använder "Number" att söka efter då den identifierar objektet. I detta fall har ett nummer två riktningar (sluthållplatser).
Har för mig att du även kan länka olika objekt i Parse, men hur som helst, om du mest är inne på att lära dig Java behöver du inte dyka in i Parse och Android, bara ett förslag
- Idag Iphones marknadsandel faller i USA 19
- Igår Airtec Pro Type1 – batteridrivet alternativ till tryckluft på burk 51
- Igår Nu stiger hårddiskpriserna med uppemot 10 procent 15
- Igår Analytiker: Apple har överskattat intresset för Vision Pro 50
- 24 / 4 AMD, Nvidia och Intel – vad är det för skillnad mellan grafikkortstillverkarna? 28
- Tråden om PlayStation 514599
- Iphones marknadsandel faller i USA20
- Letar begagnad smidig bärbar dator på 14"3
- Airtec Pro Type1 – batteridrivet alternativ till tryckluft på burk52
- Vad har ni i lön?12991
- Ingen som är taggad på att se nya Dune?, Bioprimär idag 15 sep168
- Elbilar - Tråden för intresserade23180
- Herman Miller X Logitech G Embody Gaming Chair, recension?118
- Quiz: Vad kan du om Inet?69
- Laptop för studier0
- Säljes i3-8100
- Köpes Luftkylning och Fläktar
- Köpes Nvidia Quadro P400,600 eller 620
- Säljes Dell Latitude 7530 15,6”
- Köpes Önskar köpa 6700xt eller 3070
- Säljes Asus Geforce RTX 2070 8GB Strix Gaming OC
- Köpes Köper bärbara datorer, trasiga, utan skärm etc.
- Säljes Lenovo Thinkcentre M73
- Säljes Lenovo Legion Slim 5 14” OLED
- Säljes Asus VG248 24"
- Iphones marknadsandel faller i USA20
- Konsumentverket granskar tio nätbutiker som lurat kunder15
- Airtec Pro Type1 – batteridrivet alternativ till tryckluft på burk52
- Nintendo-innehåll tas bort från Garrys Mod21
- Nu stiger hårddiskpriserna med uppemot 10 procent15
- Quiz: Vad kan du om Inet?69
- Analytiker: Apple har överskattat intresset för Vision Pro50
- Microsoft rullar ut Startmenyreklam till alla64
- EU röstar igenom ”rätten att reparera”53
- Viaplay sätter ner foten mot delade konton55