Avatar billede ra__mus Nybegynder
05. marts 2011 - 16:30 Der er 35 kommentarer og
1 løsning

hjælp til at lave form til android

hej
jeg er begyndt på android, og vil lave en app til android. Nogen der kan fortælle mig hvordan jeg laver en form som brugeren kan indtaste eks. sit navn, adresse, tlf nr og lignende ind i, og det så kan sendes til en fil efterfølgende ??
Avatar billede heinzdmx Nybegynder
05. marts 2011 - 17:28 #1
Har du styr på hvordan du laver et basalt program?

Du skal have:

Layout i en xml fil
- Der findes TextView der bruges til input af tegn

Kode:
- Validering af input
- Skal det gemmes på telefonen eller skal det sendes over netværket til en server?
Avatar billede ra__mus Nybegynder
05. marts 2011 - 18:16 #2
er rimelig ny i det.
Men okay jeg vil prøve at lave det layout i TextView,
men aner ikke hvordan jeg får det lavet som en form og sendt det videre i en fil ?? Det skal gemmes i en fil på en server...

Vil jo lave det som med en form i html.. og action=post..er godt klar over det er noget hel andet her, men mere for at forklare hvad det skal gøre...
Avatar billede Pkallesoe Nybegynder
05. marts 2011 - 18:33 #3
Hvis du intet aner om det, så vil jeg foreslå dig at gå igennem nogle tutorials omkring emnet, der er en del på nettet - og læse mere ind i xml
Avatar billede heinzdmx Nybegynder
05. marts 2011 - 18:38 #4
Behøver det så være et decideret app til Android?

Kan du ikke nøjes med at man går til en adresse på telefonen hvor der er de html elementer der skal til for at give de oplysninger der skal bruges?

Så kan du lave et kortlink med QR-codes. På den måde irritere du ikke brugere med at de skal installere et program for blot at udfylde en web-survery
Avatar billede arne_v Ekspert
05. marts 2011 - 19:49 #5
Avatar billede ra__mus Nybegynder
06. marts 2011 - 10:28 #6
Heinz
Det er til en app det skal bruges...
Kan godt lave text view , mere det med at få det indtastede sendt videre i en fil...?
Avatar billede heinzdmx Nybegynder
06. marts 2011 - 11:28 #7
Så skal du jo bare lave en url ala ?navn=textview1&alder=textview2

Så kan du lave en post med det. Det kræver at du i dit manifest skriver at du skal have internet rettigheder, det kan du prøve at Google

På serveren kan du så lave det som du ville med en hvilken som helst anden side
Avatar billede ra__mus Nybegynder
06. marts 2011 - 12:11 #8
heinz
du er nødt til at forklare lidt mere detaljeret hvor jeg skal lave den url...
altså skal jo lave en aktivitet med det i java fil, men hvad skal jeg skrive der ??
Avatar billede arne_v Ekspert
06. marts 2011 - 16:22 #9
Vil du gemme i en fil på telefonen eller i en fil på en central server?
Avatar billede ra__mus Nybegynder
06. marts 2011 - 16:26 #10
Det skal være i en fil på en central server...som jeg så kan læse informationerne ind fra igen i et listeview..
Avatar billede arne_v Ekspert
06. marts 2011 - 16:31 #11
Så skal du kigge på HTTP.

Android kommer med HttpClient til at lave GET pg POST med.
Avatar billede ra__mus Nybegynder
06. marts 2011 - 17:13 #12
Ved du hvor jeg kan finde noget om det ?
Avatar billede arne_v Ekspert
06. marts 2011 - 17:22 #13
Avatar billede ra__mus Nybegynder
06. marts 2011 - 18:16 #14
Fint, men kunne måske godt her i starten tænke mig nogle eksempler på det, den måde kan jeg bedst lære det på...du har ikke eller ved hvor jeg kan finde noget kode ? Har forsøgt at søge på det uden held..
Avatar billede heinzdmx Nybegynder
06. marts 2011 - 18:43 #15
Her er et eksemple:
http://www.ibm.com/developerworks/opensource/library/os-android-networking/

Den bruger en seperat tråd (den der hedder Requester) så programmet ikke går i ANR (svarer ikke) mens der postes.
Avatar billede arne_v Ekspert
06. marts 2011 - 21:30 #16
Der er rigtigt mange google hits på:
  android httpclient example

Jeg faldt bl.a. over:
  http://www.remwebdevelopment.com/dev/a20/Android-A-Quick-and-Dirty-Http-Client.html
Avatar billede ra__mus Nybegynder
08. marts 2011 - 12:22 #17
Jeg har nu gjort det at jeg har data liggende i en tekstfil..som jeg så skal have uploadet til webserveren.. hvordan er det man gør der ?
data i tekstfilen er nogle jeg selv har indtastet..

Så mangler også stadig at brugeren kan indtaste data i editwiew i android og de så kommer over i en tekstfil, istedet for jeg selv indtaster dem direkte i filen..
Nogen der har et eksempel på et editwiew med data, hvor der klikkes på en send button og der så skrives til en fil ?
Avatar billede heinzdmx Nybegynder
08. marts 2011 - 16:58 #18
I stedet for at gemme filen lokalt kunne du jo i stedet have alle data i den url du kan sende afsted til serveren. På den måde kan serveren returnere "true", hvis det fik godt og en fejlmeddelse eller bare "false" hvis det ikke gik godt?

Og tag nu at kig på det link Arne har givet dig her til sidst. Der er den fulde klasse til at lave en forespørgsmål på en url og få et tilbagesvar.

men kort uden svar:
String url = "websermedhttp/p.php?Navn=" + ((EditText)findViewById(R.id.url)).getText().toString();

HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
try{
    HttpResponse response = client.execute(request);
    txtResult.setText(HttpHelper.request(response));
}
catch(Exception ex){
            txtResult.setText("Failed!");
        }
Avatar billede ra__mus Nybegynder
08. marts 2011 - 17:25 #19
det link arne har givet i #16 , viser det ikke hvordan man får data fra webserveren ??
Jeg skal jo sende en fil til webserveren ....
Avatar billede heinzdmx Nybegynder
08. marts 2011 - 17:35 #20
Øhhh nu modsiger du dig selv.

At få data fra webserveren er ikke det samme som at sende en fil til webserveren.

Og desuden hvorfor er det ikke fint nok at du gør det i URL, indeholder det billeder eller noget der ikke kan overføres i tekst form?
Avatar billede ra__mus Nybegynder
08. marts 2011 - 17:48 #21
modsiger jeg mig selv ??
skal sende en fil til serveren.
url er også fint. jeg kan bare se at det link som arne viser et at trække data fra serveren, så det kan jeg vil ikke bruge når jeg skal sende eller hvad ??
Avatar billede heinzdmx Nybegynder
08. marts 2011 - 18:04 #22
Du skal jo ikke trække data fra en server når du sender data til en server.

Men jo det kan du godt.

HttpHelper henter responsen fra serveren og viser den i et tekstfelt.
Avatar billede ra__mus Nybegynder
08. marts 2011 - 18:22 #23
Ved du hvordan man sender data til serveren ?
er det med det du skriver i #18 ??

ved ikke om vi har misforstået hinanden...
Avatar billede heinzdmx Nybegynder
08. marts 2011 - 18:48 #24
Min ide var bare at du kunne skrive det i URL:

php?navn=ditnavn&alder=dinalder

Osv.

Det kan bruges hvis det er kort mængde data der skal overføres.

Hvis du skal uploade en fil:
http://getablogger.blogspot.com/2008/01/android-how-to-post-file-to-php-server.html
Avatar billede ra__mus Nybegynder
08. marts 2011 - 19:00 #25
Fint så skal jeg bare bruge en xml fil...hvor brugere kan indtaste værdier...kan du hjælpe med det så det virker sammen med det du har linket til ? Det ville være super..
Avatar billede heinzdmx Nybegynder
08. marts 2011 - 19:05 #26
En xml fil til hvad?
Avatar billede ra__mus Nybegynder
08. marts 2011 - 19:21 #27
jeg skal jo give brugere mulighed for at indtaste vædrier i nogle editviews i android og de skal så klikke på "send" og herefter skal de skrives til en tekstfil som så sendes til serveren.
Og skærmbilledet i android dannes jo udfra xml filen der indeholder disse eitviews, og der skal jo også noget java kode til at behandle de indtastede værdier så de kan skrives til en fil..
Avatar billede heinzdmx Nybegynder
08. marts 2011 - 19:39 #28
Layout kan jeg jo ikke rigtigt hjælpe så meget mere med end hvad der ligger på nogle af de sidder du har kigget på.

Men kort sagt er den jo bygget op af:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<EditText
android:id="@+id/Navn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=""
/>
<Button
android:id="@+id/buttonUpload"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Upload"
/>
</LinearLayout>


Du laver så lige så mange EditText som du vil, men husk at android:id skal være unikt.

Herefter kan du få teksten ud i kode vha.:

((EditText)findViewById(R.id.Navn)).getText().toString()
Avatar billede ra__mus Nybegynder
08. marts 2011 - 20:16 #29
den brokkker sig over EditText i den nederste kode ??
cannot find symbol.....
Avatar billede heinzdmx Nybegynder
08. marts 2011 - 20:52 #30
Hvad bruger du til at udvikle?

Hvis det er Eclipse, så prøv projekt -> clean projekt data
Avatar billede ra__mus Nybegynder
08. marts 2011 - 21:10 #31
det var fordi jeg bruger textview i dette tilfælde :)
men der bliver ikke skrevet noget til skærmen.. så skal vel give en metode kommando for at få det ud på skærmen ??
Avatar billede heinzdmx Nybegynder
08. marts 2011 - 21:39 #32
Hvis brugeren skal kunne indtaste data så skal du jo bruge en EditText ??
Avatar billede ra__mus Nybegynder
08. marts 2011 - 22:08 #33
ja ved jeg godt. men det vare lige et felt som ikke skal kunne indtastes i...men ved sgu ik lige hvordan jeg får det frem på skærmen...det er sådan at ,an klikker i et listeview på startskærmen og så kommer man til den anden skærm hvor textviewet skal være og der skal den så skrive noget som er afhængig af hvilket textview man klikkede på på forsiden...
men ved ik lige hvordan jeg får overført det ??
Avatar billede heinzdmx Nybegynder
08. marts 2011 - 22:52 #34
Så skal du bruge Bundle.

Følgende er hvad jeg gør i et af mine Android programmer:

I din activity der, her Main der kalder en ny activity her kaldet New

ListView lv = getListView();

lv.setOnItemClickListener(new OnItemClickListener()
{
    public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id)
    {
            String viewText = (String) ((TextView) view).getText();
    Intent tempIntent = new Intent(Main.this, New.class);
    tempIntent.putExtra("Text", viewText);
    startActivity(tempIntent);
    tempIntent = null;
    }
});


Og i New

Bundle extras = getIntent().getExtras();
Log.e("Test", extras.getString("Text"));


Der bør lave et output til logcat der indeholder hvad din listViews text var.
Avatar billede ra__mus Nybegynder
20. november 2011 - 16:46 #35
læg et svar heinz :-)
Avatar billede heinzdmx Nybegynder
20. november 2011 - 20:55 #36
Svar her
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester