Permalänk
Medlem

Hjälp med android app.

Hej jag håller på att utveckla en app för android och har lite problem, jag tror att felet ligger i skrivandet och läsningen av filerna eller när jag skapar spinners?
Här är koden för klassen där skrivningen görs:

public class Aktivitet extends Activity{ Button skapa; EditText etNamn; String sNamn; RadioGroup rgKategorier; RadioButton rbGolf; RadioButton rbFys; RadioButton rbMentalt; RadioButton rbOvrigt; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.aktivitet); etNamn = (EditText) findViewById(R.id.etNamn); skapa = (Button) findViewById(R.id.bSkapa); rgKategorier = (RadioGroup) findViewById(R.id.rgKategorier); rbGolf = (RadioButton) findViewById(R.id.rbGolf); rbFys = (RadioButton) findViewById(R.id.rbFys); rbMentalt = (RadioButton) findViewById(R.id.rbMentalt); rbOvrigt = (RadioButton) findViewById(R.id.rbOvrigt); skapa.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { int selectedId = rgKategorier.getCheckedRadioButtonId(); String output = " "; String output2 = " "; sNamn = etNamn.getText().toString(); String FILENAME = "aktivitetInfo.txt"; String FILENAME2 = "kategoriInfo.txt"; try { OutputStreamWriter osw = new OutputStreamWriter(openFileOutput("FILENAME", 0)); OutputStreamWriter osw2 = new OutputStreamWriter(openFileOutput("FILENAME2", 0)); if(selectedId == rbGolf.getId()){ output = "Golf\n"; osw2.write(output);} else if(selectedId == rbFys.getId()){ output = "Fys\n"; osw2.write(output);} else if(selectedId == rbMentalt.getId()){ output = "Mentalt\n"; osw2.write(output);} else if(selectedId == rbOvrigt.getId()){ output = "Ovrigt\n"; osw2.write(output);} output2 = sNamn + "\n"; osw.write(output2); osw.close(); osw2.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } Intent openMainProgram = new Intent("martin.app.development.DSFACTIVITY"); startActivity(openMainProgram); } }); } }

Och här är koden där läsningen sker:

public class Post extends Activity{ Spinner spGolf, spFys, spMentalt, spOvrigt;//Spinners for categories public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.post);//SEt post to xml layout String inputFile = "aktivitetInfo.txt";//Set upp the input files String inputFile2 = "kategoriInfo.txt"; String input = "";//The input taken from files String input2 = ""; //Setup spinners spGolf = (Spinner) findViewById(R.id.spGolf); spFys = (Spinner) findViewById(R.id.spFys); spMentalt = (Spinner) findViewById(R.id.spMentalt); spOvrigt= (Spinner) findViewById(R.id.spOvrigt); String[] kategori = {}; String[] aktivitet = {}; try { InputStream is = openFileInput(inputFile); InputStream is2 = openFileInput(inputFile2); InputStreamReader inputreader = new InputStreamReader(is); InputStreamReader inputreader2 = new InputStreamReader(is2); BufferedReader buffreader = new BufferedReader(inputreader); BufferedReader buffreader2 = new BufferedReader(inputreader2); input = buffreader.toString(); input2 = buffreader2.toString(); int length = input.length(); int length2 = input2.length(); for(int i = 0; i < length; i++){ String word = ""; int j = 0; if(input.substring(i, i+2) == "\n"){ aktivitet[j] = word; j++; } else word += input.substring(i, i+1); } for(int i = 0; i < length2; i++){ String word = ""; int j = 0; if(input2.substring(i, i+2) == "\n"){ kategori[j] = word; j++; } else word += input.substring(i, i+1); } is.close(); is2.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } List<String> golfList = new ArrayList<String>(); List<String> fysList = new ArrayList<String>(); List<String> mentaltList = new ArrayList<String>(); List<String> ovrigtList = new ArrayList<String>(); for(int i = 0; i < kategori.length; i++){ if(kategori[i] == "Golf"){ golfList.add(aktivitet[i]); } else if(kategori[i] == "Fys"){ fysList.add(aktivitet[i]); } else if(kategori[i] == "Mentalt"){ mentaltList.add(aktivitet[i]); } else{ ovrigtList.add(aktivitet[i]); } } ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, golfList); dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spGolf.setAdapter(dataAdapter); ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, fysList); dataAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spFys.setAdapter(dataAdapter2); ArrayAdapter<String> dataAdapter3 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, mentaltList); dataAdapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spMentalt.setAdapter(dataAdapter3); ArrayAdapter<String> dataAdapter4 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, ovrigtList); dataAdapter4.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spOvrigt.setAdapter(dataAdapter4); } }

Sådär tack på förhand!

Permalänk
Medlem

"har ett litet problem", inte funderat på att skriva vad problemet är? t.ex. vad/när det fel?
Går det inte att använda Androids XMLer för att deklarera String arrayer till dina spinners istället för att läsa från fil?
Sen så sätter du samma adapter på samtliga spinners btw-.-
Lägg in lite loggning så kan du säkert hitta vad som är fel

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk
Medlem

Jag ber om ursäkt för min otydlighet, problemet är att när jag kommer till delen av programmet där spinnersna visas så innehåller de inte några items.
Går det att spara i android xml:er från java? Förlåt för min okunnighet.

Permalänk
Medlem

Ah så du ska läsa å skriva från samma filer, då blir det lite svårt att använda XML resurser, annars hade du kunnat använt denna för statisk information. Koden är så hemsk att läsa så kollade inte så noga-.- metoder, please
http://developer.android.com/guide/topics/resources/string-re...

Har du loggat/debuggat listorna så de har ett innehåll?:p
Måste ju finnas massor av exempel hur man sätter upp spinners så borde inte vara nå problem

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk
Permalänk
Medlem

Haha jag vet att koden är gräslig. Jag har en tendens att bara sätta mig och skriva koden utan någon slags planering och då blir de ofta en jävla röra Jag får försöka köra lite mer debugging...

Permalänk
Medlem

Inte testat att köra logcat och kolla vad problemet är?

Ledsen om jag missförstått problemet.

Om det nu är så att appen kraschar kan det vara värt att kolla AndroidManifest same xml-filerna. Ställer rätt ofta till strul enligt min erfarenhet

Visa signatur

Dator: Fractal Design XL || Windows 10 || i5 750 || 8 GB RAM || HD 7970 || 120 GB SSD
Server: Fractal Design Core 3000 || ESXi 5.1 || AMD FX-6100 || 20 GB RAM
Foto: 7D || 17-50mm f/2.8 || 50mm f/1.8 || 70mm f/2.8 || 70-200mm f/2.8
Citera för svar!

Permalänk
Medlem

Tack för all hjälp quotens runt FILENAME är nu fixat och jag har nu gjort om lite i post.java koden också med när jag startar post delen så får jag ett fel meddelande från android... Jag vet inte riktigt vad jag ska göra... Tack för all hjälp så här långt det uppskattas verkligen:D!!

public class Post extends Activity{ Spinner spGolf, spFys, spMentalt, spOvrigt;//Spinners for categories public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.post);//SEt post to xml layout String inputFile = "aktivitetInfo.txt";//Set upp the input files String inputFile2 = "kategoriInfo.txt"; String input = "";//The input taken from files String input2 = ""; //Setup spinners spGolf = (Spinner) findViewById(R.id.spGolf); spFys = (Spinner) findViewById(R.id.spFys); spMentalt = (Spinner) findViewById(R.id.spMentalt); spOvrigt= (Spinner) findViewById(R.id.spOvrigt); //Holding the difrent categories and activits List kategori = new LinkedList(); // Doubly-linked list kategori = new ArrayList(); List aktiviteter = new LinkedList(); // Doubly-linked list aktiviteter = new ArrayList(); try { InputStream is = openFileInput(inputFile); InputStream is2 = openFileInput(inputFile2); InputStreamReader inputreader = new InputStreamReader(is); InputStreamReader inputreader2 = new InputStreamReader(is2); BufferedReader buffreader = new BufferedReader(inputreader); BufferedReader buffreader2 = new BufferedReader(inputreader2); input = buffreader.toString(); input2 = buffreader2.toString(); int length = input.length(); int length2 = input2.length(); for(int i = 0; i < length; i++){ String word = ""; if(input.substring(i, i+2).equals("\n")){ aktiviteter.add(word); word = ""; } else word += input.substring(i, i+1); } for(int i = 0; i < length2; i++){ String word = ""; if(input2.substring(i, i+2).equals("\n")){ kategori.add(word); word = ""; } else word += input.substring(i, i+1); } is.close(); is2.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } List<String> golfList = new ArrayList<String>(); List<String> fysList = new ArrayList<String>(); List<String> mentaltList = new ArrayList<String>(); List<String> ovrigtList = new ArrayList<String>(); for(int i = 0; i < kategori.size(); i++){ if(kategori.get(i) == "Golf"){ golfList.add((String) aktiviteter.get(i)); } else if(kategori.get(i) == "Fys"){ fysList.add((String) aktiviteter.get(i)); } else if(kategori.get(i) == "Mentalt"){ mentaltList.add((String) aktiviteter.get(i)); } else{ ovrigtList.add((String) aktiviteter.get(i)); } } ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, golfList); dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spGolf.setAdapter(dataAdapter); ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, fysList); dataAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spFys.setAdapter(dataAdapter2); ArrayAdapter<String> dataAdapter3 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, mentaltList); dataAdapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spMentalt.setAdapter(dataAdapter3); ArrayAdapter<String> dataAdapter4 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, ovrigtList); dataAdapter4.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spOvrigt.setAdapter(dataAdapter4); } }

Permalänk
Skrivet av Ortson:

Tack för all hjälp quotens runt FILENAME är nu fixat och jag har nu gjort om lite i post.java koden också med när jag startar post delen så får jag ett fel meddelande från android... Jag vet inte riktigt vad jag ska göra... Tack för all hjälp så här långt det uppskattas verkligen:D!!

public class Post extends Activity{ Spinner spGolf, spFys, spMentalt, spOvrigt;//Spinners for categories public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.post);//SEt post to xml layout String inputFile = "aktivitetInfo.txt";//Set upp the input files String inputFile2 = "kategoriInfo.txt"; String input = "";//The input taken from files String input2 = ""; //Setup spinners spGolf = (Spinner) findViewById(R.id.spGolf); spFys = (Spinner) findViewById(R.id.spFys); spMentalt = (Spinner) findViewById(R.id.spMentalt); spOvrigt= (Spinner) findViewById(R.id.spOvrigt); //Holding the difrent categories and activits List kategori = new LinkedList(); // Doubly-linked list kategori = new ArrayList(); List aktiviteter = new LinkedList(); // Doubly-linked list aktiviteter = new ArrayList(); try { InputStream is = openFileInput(inputFile); InputStream is2 = openFileInput(inputFile2); InputStreamReader inputreader = new InputStreamReader(is); InputStreamReader inputreader2 = new InputStreamReader(is2); BufferedReader buffreader = new BufferedReader(inputreader); BufferedReader buffreader2 = new BufferedReader(inputreader2); input = buffreader.toString(); input2 = buffreader2.toString(); int length = input.length(); int length2 = input2.length(); for(int i = 0; i < length; i++){ String word = ""; if(input.substring(i, i+2).equals("\n")){ aktiviteter.add(word); word = ""; } else word += input.substring(i, i+1); } for(int i = 0; i < length2; i++){ String word = ""; if(input2.substring(i, i+2).equals("\n")){ kategori.add(word); word = ""; } else word += input.substring(i, i+1); } is.close(); is2.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } List<String> golfList = new ArrayList<String>(); List<String> fysList = new ArrayList<String>(); List<String> mentaltList = new ArrayList<String>(); List<String> ovrigtList = new ArrayList<String>(); for(int i = 0; i < kategori.size(); i++){ if(kategori.get(i) == "Golf"){ golfList.add((String) aktiviteter.get(i)); } else if(kategori.get(i) == "Fys"){ fysList.add((String) aktiviteter.get(i)); } else if(kategori.get(i) == "Mentalt"){ mentaltList.add((String) aktiviteter.get(i)); } else{ ovrigtList.add((String) aktiviteter.get(i)); } } ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, golfList); dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spGolf.setAdapter(dataAdapter); ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, fysList); dataAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spFys.setAdapter(dataAdapter2); ArrayAdapter<String> dataAdapter3 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, mentaltList); dataAdapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spMentalt.setAdapter(dataAdapter3); ArrayAdapter<String> dataAdapter4 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, ovrigtList); dataAdapter4.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spOvrigt.setAdapter(dataAdapter4); } }

Dold text

Du glömde felmeddelandet.

Permalänk
Medlem

Felmedelandet är bara så här: the application has stopped unexpectedly. Please try again.
Inget mer än så.

Permalänk
Skrivet av Ortson:

Felmedelandet är bara så här: the application has stopped unexpectedly. Please try again.
Inget mer än så.

Titta i Logcat, felmeddelandet finns där.

Permalänk
Medlem

Här är felmeddelandet jag får:
04-04 17:01:42.777: E/AndroidRuntime(437): Uncaught handler: thread main exiting due to uncaught exception
04-04 17:01:42.796: E/AndroidRuntime(437): java.lang.RuntimeException: Unable to start activity ComponentInfo{martin.app.development/martin.app.development.Post}: java.lang.StringIndexOutOfBoundsException
04-04 17:01:42.796: E/AndroidRuntime(437): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
04-04 17:01:42.796: E/AndroidRuntime(437): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
04-04 17:01:42.796: E/AndroidRuntime(437): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
04-04 17:01:42.796: E/AndroidRuntime(437): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
04-04 17:01:42.796: E/AndroidRuntime(437): at android.os.Handler.dispatchMessage(Handler.java:99)
04-04 17:01:42.796: E/AndroidRuntime(437): at android.os.Looper.loop(Looper.java:123)
04-04 17:01:42.796: E/AndroidRuntime(437): at android.app.ActivityThread.main(ActivityThread.java:4363)
04-04 17:01:42.796: E/AndroidRuntime(437): at java.lang.reflect.Method.invokeNative(Native Method)
04-04 17:01:42.796: E/AndroidRuntime(437): at java.lang.reflect.Method.invoke(Method.java:521)
04-04 17:01:42.796: E/AndroidRuntime(437): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
04-04 17:01:42.796: E/AndroidRuntime(437): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
04-04 17:01:42.796: E/AndroidRuntime(437): at dalvik.system.NativeStart.main(Native Method)
04-04 17:01:42.796: E/AndroidRuntime(437): Caused by: java.lang.StringIndexOutOfBoundsException
04-04 17:01:42.796: E/AndroidRuntime(437): at java.lang.String.substring(String.java:1646)
04-04 17:01:42.796: E/AndroidRuntime(437): at martin.app.development.Post.onCreate(Post.java:71)
04-04 17:01:42.796: E/AndroidRuntime(437): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
04-04 17:01:42.796: E/AndroidRuntime(437): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
04-04 17:01:42.796: E/AndroidRuntime(437): ... 11 more
04-04 17:01:42.825: I/dalvikvm(437): threadid=7: reacting to signal 3
04-04 17:01:42.835: E/dalvikvm(437): Unable to open stack trace file '/data/anr/traces.txt': Permission denied
o_O
Fattar inte riktigt det där...

Sätter upp en ny version av koden om några dagar när jag har fixat lite mer med den.

Permalänk
Skrivet av Ortson:

Här är felmeddelandet jag får:
04-04 17:01:42.777: E/AndroidRuntime(437): Uncaught handler: thread main exiting due to uncaught exception
04-04 17:01:42.796: E/AndroidRuntime(437): java.lang.RuntimeException: Unable to start activity ComponentInfo{martin.app.development/martin.app.development.Post}: java.lang.StringIndexOutOfBoundsException
04-04 17:01:42.796: E/AndroidRuntime(437): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
04-04 17:01:42.796: E/AndroidRuntime(437): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
04-04 17:01:42.796: E/AndroidRuntime(437): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
04-04 17:01:42.796: E/AndroidRuntime(437): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
04-04 17:01:42.796: E/AndroidRuntime(437): at android.os.Handler.dispatchMessage(Handler.java:99)
04-04 17:01:42.796: E/AndroidRuntime(437): at android.os.Looper.loop(Looper.java:123)
04-04 17:01:42.796: E/AndroidRuntime(437): at android.app.ActivityThread.main(ActivityThread.java:4363)
04-04 17:01:42.796: E/AndroidRuntime(437): at java.lang.reflect.Method.invokeNative(Native Method)
04-04 17:01:42.796: E/AndroidRuntime(437): at java.lang.reflect.Method.invoke(Method.java:521)
04-04 17:01:42.796: E/AndroidRuntime(437): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
04-04 17:01:42.796: E/AndroidRuntime(437): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
04-04 17:01:42.796: E/AndroidRuntime(437): at dalvik.system.NativeStart.main(Native Method)
04-04 17:01:42.796: E/AndroidRuntime(437): Caused by: java.lang.StringIndexOutOfBoundsException
04-04 17:01:42.796: E/AndroidRuntime(437): at java.lang.String.substring(String.java:1646)
04-04 17:01:42.796: E/AndroidRuntime(437): at martin.app.development.Post.onCreate(Post.java:71)
04-04 17:01:42.796: E/AndroidRuntime(437): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
04-04 17:01:42.796: E/AndroidRuntime(437): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
04-04 17:01:42.796: E/AndroidRuntime(437): ... 11 more
04-04 17:01:42.825: I/dalvikvm(437): threadid=7: reacting to signal 3
04-04 17:01:42.835: E/dalvikvm(437): Unable to open stack trace file '/data/anr/traces.txt': Permission denied
o_O
Fattar inte riktigt det där...

Sätter upp en ny version av koden om några dagar när jag har fixat lite mer med den.

Felmeddelandet du ska söka på är "StringIndexOutOfBoundsException", det händer på rad 71 i Post.java. (martin.app.development.Post.onCreate(Post.java:71))

Permalänk
Medlem

Illa om man inte kan tolka simpla stacktraces Bakläxa!;)

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk
Medlem

Fixat lite i koden och fixade StringIndexOutOfBoundsException problemet. Och post delen i programmet öppnas nu men inget blir visat i spinnersna... Har nu lagt märke till att i aktivitet klassen så när man sparar en aktivitet och kategori så skrivs den gamla över:ehm: Här är koden:

public class Post extends Activity{ Spinner spGolf, spFys, spMentalt, spOvrigt;//Spinners for categories public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.post);//SEt post to xml layout String inputFile = "aktivitetInfo.txt";//Set upp the input files String inputFile2 = "kategoriInfo.txt"; String input = "";//The input taken from files String input2 = ""; //Setup spinners spGolf = (Spinner) findViewById(R.id.spGolf); spFys = (Spinner) findViewById(R.id.spFys); spMentalt = (Spinner) findViewById(R.id.spMentalt); spOvrigt= (Spinner) findViewById(R.id.spOvrigt); //Holding the difrent categories and activits List<String> kategori = new LinkedList<String>(); // Doubly-linked list kategori = new ArrayList<String>(); List<String> aktiviteter = new LinkedList<String>(); // Doubly-linked list aktiviteter = new ArrayList<String>(); try { InputStream is = openFileInput(inputFile); InputStream is2 = openFileInput(inputFile2); InputStreamReader inputreader = new InputStreamReader(is); InputStreamReader inputreader2 = new InputStreamReader(is2); BufferedReader buffreader = new BufferedReader(inputreader); BufferedReader buffreader2 = new BufferedReader(inputreader2); String currentLine; while((currentLine = buffreader.readLine()) != null){ input += currentLine; } currentLine = ""; while((currentLine = buffreader2.readLine()) != null){ input2 += currentLine; } int length = input.length(); int length2 = input2.length(); for(int i = 0; i < length; i++){ String word = ""; if(input.substring(i, i+1).equals("\n")){ aktiviteter.add(word); word = ""; } else word.concat((input.substring(i, i+1))); } for(int i = 0; i < length2; i++){ String word = ""; if(input2.substring(i, i+1).equals("\n")){ kategori.add(word); word = ""; } else word.concat((input2.substring(i, i+1))); } is.close(); is2.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } List<String> golfList = new ArrayList<String>(); List<String> fysList = new ArrayList<String>(); List<String> mentaltList = new ArrayList<String>(); List<String> ovrigtList = new ArrayList<String>(); for(int i = 0; i < kategori.size(); i++){ if(kategori.get(i) == "Golf"){ golfList.add((String) aktiviteter.get(i)); } else if(kategori.get(i) == "Fys"){ fysList.add((String) aktiviteter.get(i)); } else if(kategori.get(i) == "Mentalt"){ mentaltList.add((String) aktiviteter.get(i)); } else{ ovrigtList.add((String) aktiviteter.get(i)); } } ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, golfList); dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spGolf.setAdapter(dataAdapter); ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, fysList); dataAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spFys.setAdapter(dataAdapter2); ArrayAdapter<String> dataAdapter3 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, mentaltList); dataAdapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spMentalt.setAdapter(dataAdapter3); ArrayAdapter<String> dataAdapter4 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, ovrigtList); dataAdapter4.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spOvrigt.setAdapter(dataAdapter4); } }

public class Aktivitet extends Activity{ final String TAG = "MaRtIn"; Button skapa; EditText etNamn; String sNamn; RadioGroup rgKategorier; RadioButton rbGolf; RadioButton rbFys; RadioButton rbMentalt; RadioButton rbOvrigt; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.aktivitet); initVariables(); initButtons(); } private void initButtons() { skapa.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { int selectedId = rgKategorier.getCheckedRadioButtonId(); String output = " "; String output2 = " "; sNamn = etNamn.getText().toString(); String FILENAME = "aktivitetInfo.txt"; String FILENAME2 = "kategoriInfo.txt"; try { OutputStreamWriter osw = new OutputStreamWriter(openFileOutput(FILENAME, 0)); OutputStreamWriter osw2 = new OutputStreamWriter(openFileOutput(FILENAME2, 0)); if(selectedId == rbGolf.getId()){ output += ("Golf\n"); osw2.write(output);} else if(selectedId == rbFys.getId()){ output += ("Fys\n"); osw2.write(output);} else if(selectedId == rbMentalt.getId()){ output +=("Mentalt\n"); osw2.write(output);} else if(selectedId == rbOvrigt.getId()){ output+=("Ovrigt\n"); osw2.write(output);} output2 += (sNamn + "\n"); osw.write(output2); osw.close(); osw2.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } Log.i(TAG,"output = " + output + "output2 = " + output2); Intent openMainProgram = new Intent("martin.app.development.DSFACTIVITY"); startActivity(openMainProgram); } }); } private void initVariables(){ etNamn = (EditText) findViewById(R.id.etNamn); skapa = (Button) findViewById(R.id.bSkapa); rgKategorier = (RadioGroup) findViewById(R.id.rgKategorier); rbGolf = (RadioButton) findViewById(R.id.rbGolf); rbFys = (RadioButton) findViewById(R.id.rbFys); rbMentalt = (RadioButton) findViewById(R.id.rbMentalt); rbOvrigt = (RadioButton) findViewById(R.id.rbOvrigt); } }

Permalänk
Medlem

Alltså om du felsöker själv sedan visar din kod som är felaktig får du säkert många fler som hjälper till, att sitta och läsa igenom hela klasser utan att veta syftena med nånting (och att din kod är fruktansvärt jobbig och läsa tyvärr) blir lite jobbigt. En grej jag såg dock är detta:

for(int i = 0; i < length; i++){ String word = ""; if(input.substring(i, i+1).equals("\n")){ aktiviteter.add(word); word = ""; } else word.concat((input.substring(i, i+1))); }

Vad ska detta göra? Du gör en loop, skapar en variabel och tilldelar den "". Du kolla om din input är lika med "\n", om den är det lägger du till en tom sträng och sätter word till "" igen vilket är onödigt eftersom nästa gång din loop körs så nollställs ju variabeln igen eftersom den är innanför loopen. Är den däremot inte lika med "\n" så kör du concat och inget mer sedan börjar loopen om och vad blir word då igen? Är lite trött och orkar inte läsa allt men dessa två loopar ser lite lustiga ut nu när jag bara skummar igenom. Orkar inte kolla allt så ber om ursäkt om jag missar nåt uppenbart.

Permalänk
Medlem

Jo jag fixade det men hade bara inte med det i koden som jag la upp nu, word variabeln var alltså inte tänkt att den skulle bli nollställd det var bara ett slarv fel. Tanken med loopen är att när den körs så loopar den igenom inputen och sparar sedan ner varje rad i aktivitet listan.