Mobile App Development 2021W Lecture 16: Difference between revisions
No edit summary |
|||
Line 5: | Line 5: | ||
==Code== | ==Code== | ||
===TapDemo | ===TapDemo (iOS) ContentView.swift=== | ||
<syntaxhighlight lang="swift" line> | <syntaxhighlight lang="swift" line> | ||
Line 38: | Line 38: | ||
} | } | ||
} | } | ||
</syntaxhighlight> | |||
===TapDemo (Android) MainActivity.kt=== | |||
<syntaxhighlight lang="kotlin" line> | |||
package carleton.comp1601.tapdemo | |||
import androidx.appcompat.app.AppCompatActivity | |||
import android.os.Bundle | |||
import android.util.Log | |||
import android.view.View | |||
import android.widget.TextView | |||
class MainActivity : AppCompatActivity() { | |||
private lateinit var myMessage: TextView | |||
private var count = 0 | |||
override fun onCreate(savedInstanceState: Bundle?) { | |||
super.onCreate(savedInstanceState) | |||
setContentView(R.layout.activity_main) | |||
Log.d("Tap Demo", "Created") | |||
myMessage = findViewById(R.id.myMessage) | |||
} | |||
override fun onResume() { | |||
super.onResume() | |||
Log.d("Tap Demo", "Resumed") | |||
} | |||
override fun onPause() { | |||
super.onPause() | |||
Log.d("Tap Demo", "Paused") | |||
} | |||
override fun onStart() { | |||
super.onStart() | |||
Log.d("Tap Demo", "Started") | |||
} | |||
override fun onStop() { | |||
super.onStop() | |||
Log.d("Tap Demo", "Stopped") | |||
} | |||
override fun onDestroy() { | |||
super.onDestroy() | |||
Log.d("Tap Demo", "Destroyed") | |||
} | |||
override fun onRestart() { | |||
super.onRestart() | |||
Log.d("Tap Demo", "Restarted") | |||
} | |||
fun myButtonPressed(v: View) { | |||
count++ | |||
myMessage.text = "You clicked $count times." | |||
} | |||
} | |||
</syntaxhighlight> | |||
===TapDemo (Android) activity_main.xml=== | |||
<syntaxhighlight lang="kotlin" line> | |||
<?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:id="@+id/TapDemo" | |||
android:layout_width="match_parent" | |||
android:layout_height="match_parent" | |||
tools:context=".MainActivity"> | |||
<Button | |||
android:id="@+id/myButton" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:onClick="myButtonPressed" | |||
android:text="Tap me!" | |||
android:textAppearance="@style/TextAppearance.AppCompat.Display1" | |||
app:layout_constraintBottom_toTopOf="@+id/myMessage" | |||
app:layout_constraintEnd_toEndOf="parent" | |||
app:layout_constraintStart_toStartOf="parent" | |||
app:layout_constraintTop_toTopOf="parent" /> | |||
<TextView | |||
android:id="@+id/myMessage" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:text="You haven't tapped yet." | |||
android:textAppearance="@style/TextAppearance.AppCompat.Display1" | |||
app:layout_constraintBottom_toBottomOf="parent" | |||
app:layout_constraintLeft_toLeftOf="parent" | |||
app:layout_constraintRight_toRightOf="parent" | |||
app:layout_constraintTop_toTopOf="parent" /> | |||
</androidx.constraintlayout.widget.ConstraintLayout> | |||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 19:11, 15 March 2021
Video
Video from the lecture given on March 15, 2021 is now available.
Code
TapDemo (iOS) ContentView.swift
//
// ContentView.swift
// Shared
//
// Created by Anil Somayaji on 2021-03-15.
//
import SwiftUI
struct ContentView: View {
@State var count = 0
var body: some View {
VStack{
Button("Tap here!", action: onTapped)
.font(/*@START_MENU_TOKEN@*/.title/*@END_MENU_TOKEN@*/)
Text("You have tapped \(count) times.")
.padding()
}
}
func onTapped() {
count = count + 1
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
TapDemo (Android) MainActivity.kt
package carleton.comp1601.tapdemo
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.View
import android.widget.TextView
class MainActivity : AppCompatActivity() {
private lateinit var myMessage: TextView
private var count = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Log.d("Tap Demo", "Created")
myMessage = findViewById(R.id.myMessage)
}
override fun onResume() {
super.onResume()
Log.d("Tap Demo", "Resumed")
}
override fun onPause() {
super.onPause()
Log.d("Tap Demo", "Paused")
}
override fun onStart() {
super.onStart()
Log.d("Tap Demo", "Started")
}
override fun onStop() {
super.onStop()
Log.d("Tap Demo", "Stopped")
}
override fun onDestroy() {
super.onDestroy()
Log.d("Tap Demo", "Destroyed")
}
override fun onRestart() {
super.onRestart()
Log.d("Tap Demo", "Restarted")
}
fun myButtonPressed(v: View) {
count++
myMessage.text = "You clicked $count times."
}
}
TapDemo (Android) activity_main.xml
<?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:id="@+id/TapDemo"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/myButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="myButtonPressed"
android:text="Tap me!"
android:textAppearance="@style/TextAppearance.AppCompat.Display1"
app:layout_constraintBottom_toTopOf="@+id/myMessage"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/myMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="You haven't tapped yet."
android:textAppearance="@style/TextAppearance.AppCompat.Display1"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>