Hjäp med läsning och skrivning av filer?

Diskussion i 'Frågor, support och diskussion' startad av ortson, 1 apr 2012.

  1. ortson

    ortson Infant Droid Medlem

    Blev medlem:
    1 apr 2012
    Inlägg:
    6
    Mottagna gillanden:
    0

    MINA ENHETER

    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:
    Kod:
    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:
    Kod:
    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!
     
    Last edited: 1 apr 2012
  2. Buzz

    Buzz Android Apprentice Medlem

    Blev medlem:
    14 maj 2010
    Inlägg:
    4 941
    Mottagna gillanden:
    2 228

    MINA ENHETER

    Jag tror det är bra om du beskriver vad som händer, varför det är fel och vad du hade förväntat dig också.
     
  3. ortson

    ortson Infant Droid Medlem

    Blev medlem:
    1 apr 2012
    Inlägg:
    6
    Mottagna gillanden:
    0

    MINA ENHETER

    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.
     
  4. Buzz

    Buzz Android Apprentice Medlem

    Blev medlem:
    14 maj 2010
    Inlägg:
    4 941
    Mottagna gillanden:
    2 228

    MINA ENHETER

    Ta och fundera lite över vilka namn som filerna skapas med.
     
  5. filuren

    filuren Infant Droid Medlem

    Blev medlem:
    15 dec 2011
    Inlägg:
    11
    Mottagna gillanden:
    1

    MINA ENHETER

    Kan du se om det kommer ut en fil på rätt ställe om det inte gör det borde du flusha utströmarna in du stänger dem. Desutom borde du tabort cittatteckenen runt FILENAME och
    FILENAME2 för att du ska få dem till rättplats
     
  6. ortson

    ortson Infant Droid Medlem

    Blev medlem:
    1 apr 2012
    Inlägg:
    6
    Mottagna gillanden:
    0

    MINA ENHETER

    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!!
    Kod:
    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);
    	}
    }
    
     
  7. filuren

    filuren Infant Droid Medlem

    Blev medlem:
    15 dec 2011
    Inlägg:
    11
    Mottagna gillanden:
    1

    MINA ENHETER

    Vad är det för felmedelande du får.

    Du ska inte använda bufferedreader.toString() då skriver du ut objektet bufferedreader vill du ha texten i filen ska du använda bufferedreader.readLine()
     
    Last edited: 3 apr 2012
  8. e7andy

    e7andy Professional Droid Hedersmedlem

    Blev medlem:
    14 okt 2009
    Inlägg:
    2 349
    Mottagna gillanden:
    835
    Telefon:
    Huawei P10 Plus

    MINA ENHETER

    Telefon:
    Huawei P10 Plus
    Telefon 2:
    Nexus 5
    Telefon 3:
    ADP1
    Övrigt:
    LG G Watch R, ChromeCast
    Mitt bästa tips är att använda debuggern väldigt mycket. Sätt en breakpoint, kör dit, stega fram tills din variabel sätts och kolla sedan vad den innehåller. Du kan även lätt stega dig igenom hela flöden, loopar m.m. för att se att logiken är rätt.
     
  9. ortson

    ortson Infant Droid Medlem

    Blev medlem:
    1 apr 2012
    Inlägg:
    6
    Mottagna gillanden:
    0

    MINA ENHETER

    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
     
    Last edited: 4 apr 2012
  10. e7andy

    e7andy Professional Droid Hedersmedlem

    Blev medlem:
    14 okt 2009
    Inlägg:
    2 349
    Mottagna gillanden:
    835
    Telefon:
    Huawei P10 Plus

    MINA ENHETER

    Telefon:
    Huawei P10 Plus
    Telefon 2:
    Nexus 5
    Telefon 3:
    ADP1
    Övrigt:
    LG G Watch R, ChromeCast
    Det står att felet är StringIndexOutOfBoundsException på rad 71 i Post.java. Tyvärr så har du inte postat hela koden så vi kan inte se vad som står på den raden.

    I tracen ser du felet:
    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)

    Använd debuggern och stega genom alla index du använder.

    Felet bör ligga på input.substring(i, i+2) eller input2.substring(i, i+2). Eftersom du lägger till 2 på i så kommer du hamna på length+1 vilket inte är tillåtet.
     
  11. ortson

    ortson Infant Droid Medlem

    Blev medlem:
    1 apr 2012
    Inlägg:
    6
    Mottagna gillanden:
    0

    MINA ENHETER

    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:
    Kod:
    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);
    	}
    }
    
    Kod:
    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);
    	}
    }
     
  12. DreamHawk

    DreamHawk Android Medlem

    Blev medlem:
    28 maj 2010
    Inlägg:
    6 064
    Mottagna gillanden:
    419
    Operatör:
    Tele2
    Telefon:
    iPhone 7

    MINA ENHETER

    Operatör:
    Tele2
    Telefon:
    iPhone 7
    ROM:
    IOS11
    Telefon 2:
    Google Galaxy Nexus
    ROM:
    LineageOS
    Vad är det "nuvarande" problemet?
    Att det nya skriver över det gamla?
     
  13. ortson

    ortson Infant Droid Medlem

    Blev medlem:
    1 apr 2012
    Inlägg:
    6
    Mottagna gillanden:
    0

    MINA ENHETER

    Jag ber om ursäkt jag tänkte fel... det nuvarande problemet är helt enkelt att det inte visas något i spinnersna och jag vet inte varför:ehm:
     
  14. e7andy

    e7andy Professional Droid Hedersmedlem

    Blev medlem:
    14 okt 2009
    Inlägg:
    2 349
    Mottagna gillanden:
    835
    Telefon:
    Huawei P10 Plus

    MINA ENHETER

    Telefon:
    Huawei P10 Plus
    Telefon 2:
    Nexus 5
    Telefon 3:
    ADP1
    Övrigt:
    LG G Watch R, ChromeCast
    Aktivitet.java
    -----------------------
    På följande rader ska du inte använda en nolla som parameter till openFileOutput:
    OutputStreamWriter osw = new OutputStreamWriter(openFileOutput(FILENAME, 0));
    OutputStreamWriter osw2 = new OutputStreamWriter(openFileOutput(FILENAME2, 0));
    Använd istället konstanten MODE_APPEND. Undvik alltid så långt det går att använda magiska nummer (http://en.wikipedia.org/wiki/Magic_number_(programming))

    Post.java
    --------------
    Det är onödigt komplicerat att först ha en while-loop och sedan löpa igenom allt igen i en foor-loop.
    Lägg allt direkt i while-loopen så slipper du även använda index för "\n".
    while((currentLine = buffreader.readLine()) != null){
    aktiviteter.add(currentLine);
    }
    while((currentLine = buffreader2.readLine()) != null){
    kategori.add(currentLine);
    }

    Så har du sparat minst 20 rader kod och snabbat upp programmet med någon millisekund :)
     
    Last edited: 6 apr 2012