Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added MainActivity.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
67 changes: 39 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,42 +1,53 @@

# Rapport

**Skriv din rapport här!**
Denna uppgift gick ut på att använda preferences

_Du kan ta bort all text som finns sedan tidigare_.
I activity_main.xml så lades det till en knapp för att byta activity och en textview frö att kunna
vissa den sparade informationen.
activity_second.xml fick en text ruta så det går att skriva in något och en knapp för att kunna
spara infromationen som skevs in.

## Följande grundsyn gäller dugga-svar:
I SecondActivity.java skapades en SharedPreferences och des editor
```
myPreferenceRef = getSharedPreferences("MyPreferenceName", MODE_PRIVATE);
myPreferenceEditor = myPreferenceRef.edit();
```

- Ett kortfattat svar är att föredra. Svar som är längre än en sida text (skärmdumpar och programkod exkluderat) är onödigt långt.
- Svaret skall ha minst en snutt programkod.
- Svaret skall inkludera en kort övergripande förklarande text som redogör för vad respektive snutt programkod gör eller som svarar på annan teorifråga.
- Svaret skall ha minst en skärmdump. Skärmdumpar skall illustrera exekvering av relevant programkod. Eventuell text i skärmdumpar måste vara läsbar.
- I de fall detta efterfrågas, dela upp delar av ditt svar i för- och nackdelar. Dina för- respektive nackdelar skall vara i form av punktlistor med kortare stycken (3-4 meningar).
det lades också till så att infromation ifrån text fältet kunde sparas
och skikas till andra activites.
```
public void savePref(View v){
// Get the text
EditText newPrefText=new EditText(this);
newPrefText=(EditText)findViewById(R.id.settingsEditView);

Programkod ska se ut som exemplet nedan. Koden måste vara korrekt indenterad då den blir lättare att läsa vilket gör det lättare att hitta syntaktiska fel.
// Store the new preference
myPreferenceEditor.putString("MyAppPreferenceString", newPrefText.getText().toString());
myPreferenceEditor.apply();

```
function errorCallback(error) {
switch(error.code) {
case error.PERMISSION_DENIED:
// Geolocation API stöds inte, gör något
break;
case error.POSITION_UNAVAILABLE:
// Misslyckat positionsanrop, gör något
break;
case error.UNKNOWN_ERROR:
// Okänt fel, gör något
break;
}
// Clear the EditText
newPrefText.setText("");
}
```

Bilder läggs i samma mapp som markdown-filen.
Precis som i SecondActivity.java så lades det till en SharedPreferences och SharedPreferences.Editor
i MainActivity.java.

I MainActivity.java så lades det också till en onResume för att hemta informatione från
SharedPreferences när man byter till main activity.
```
@Override
protected void onResume() {
super.onResume();

TextView prefTextRef=new TextView(this);
prefTextRef=(TextView)findViewById(R.id.prefText);
prefTextRef.setText(myPreferenceRef.getString("MyAppPreferenceString", "No preference found."));
}
```

![](android.png)
![](MainActivity.png)

Läs gärna:
![](SecondActivity.png)

- Boulos, M.N.K., Warren, J., Gong, J. & Yue, P. (2010) Web GIS in practice VIII: HTML5 and the canvas element for interactive online mapping. International journal of health geographics 9, 14. Shin, Y. &
- Wunsche, B.C. (2013) A smartphone-based golf simulation exercise game for supporting arthritis patients. 2013 28th International Conference of Image and Vision Computing New Zealand (IVCNZ), IEEE, pp. 459–464.
- Wohlin, C., Runeson, P., Höst, M., Ohlsson, M.C., Regnell, B., Wesslén, A. (2012) Experimentation in Software Engineering, Berlin, Heidelberg: Springer Berlin Heidelberg.
Binary file added SecondActivity.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".SecondActivity"
android:exported="false"
android:parentActivityName=".MainActivity"/>
<activity
android:name=".MainActivity"
android:label="@string/app_name"
Expand Down
30 changes: 30 additions & 0 deletions app/src/main/java/com/example/project/MainActivity.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,48 @@
package com.example.project;

import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

public class MainActivity extends AppCompatActivity {

private Button switchActivityButton;
private SharedPreferences myPreferenceRef;
private SharedPreferences.Editor myPreferenceEditor;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

myPreferenceRef = getSharedPreferences("MyPreferenceName", MODE_PRIVATE);
myPreferenceEditor = myPreferenceRef.edit();

switchActivityButton = findViewById(R.id.switchActivityButton);
switchActivityButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity( new Intent(MainActivity.this, SecondActivity.class));
}
});

}

@Override
protected void onResume() {
super.onResume();

TextView prefTextRef=new TextView(this);
prefTextRef=(TextView)findViewById(R.id.prefText);
prefTextRef.setText(myPreferenceRef.getString("MyAppPreferenceString", "No preference found."));
}

}
43 changes: 43 additions & 0 deletions app/src/main/java/com/example/project/SecondActivity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package com.example.project;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class SecondActivity extends AppCompatActivity {

private Button saveButton;
private SharedPreferences myPreferenceRef;
private SharedPreferences.Editor myPreferenceEditor;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);

myPreferenceRef = getSharedPreferences("MyPreferenceName", MODE_PRIVATE);
myPreferenceEditor = myPreferenceRef.edit();

saveButton = findViewById(R.id.saveButton);

}

public void savePref(View v){
// Get the text
EditText newPrefText=new EditText(this);
newPrefText=(EditText)findViewById(R.id.settingsEditView);

// Store the new preference
myPreferenceEditor.putString("MyAppPreferenceString", newPrefText.getText().toString());
myPreferenceEditor.apply();

// Clear the EditText
newPrefText.setText("");
}
}
29 changes: 27 additions & 2 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,37 @@
</com.google.android.material.appbar.AppBarLayout>

<TextView
android:id="@+id/mainActivityText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name"
app:layout_constraintBottom_toBottomOf="parent"
android:text="Main activity"
app:layout_constraintBottom_toTopOf="@id/switchActivityButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/appBarLayout" />

<Button
android:id="@+id/switchActivityButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Switch Activity"
tools:layout_editor_absoluteX="158dp"
tools:layout_editor_absoluteY="410dp"
app:layout_constraintBottom_toTopOf="@id/prefText"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/mainActivityText"/>

<TextView
android:id="@+id/prefText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Answer"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/switchActivityButton" />



</androidx.constraintlayout.widget.ConstraintLayout>
41 changes: 41 additions & 0 deletions app/src/main/res/layout/activity_second.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SecondActivity">

<TextView
android:id="@+id/secondActivityText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Second activity"
app:layout_constraintBottom_toTopOf="@id/settingsEditView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/settingsEditView"
app:layout_constraintBottom_toTopOf="@id/saveButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/secondActivityText"/>

<Button
android:id="@+id/saveButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Save"
android:onClick="savePref"
tools:layout_editor_absoluteX="158dp"
tools:layout_editor_absoluteY="410dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/settingsEditView"/>

</androidx.constraintlayout.widget.ConstraintLayout>