diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
index a5f05cd..e34606c 100644
--- a/.idea/jarRepositories.xml
+++ b/.idea/jarRepositories.xml
@@ -21,5 +21,10 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 7d0f615..51dff6d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
plugins {
id 'com.android.application'
}
+apply plugin: 'kotlin-android'
android {
compileSdkVersion 30
@@ -25,6 +26,9 @@ android {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
+ buildFeatures{
+ viewBinding true
+ }
}
dependencies {
@@ -35,4 +39,9 @@ dependencies {
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
+ implementation "androidx.core:core-ktx:+"
+ implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
+}
+repositories {
+ mavenCentral()
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3d93f41..4ef5b5d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -9,17 +9,14 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.KotlinHomeWork">
-
+
+
-
\ No newline at end of file
diff --git a/app/src/main/java/com/example/kotlinhomework/MainActivity.java b/app/src/main/java/com/example/kotlinhomework/MainActivity.java
deleted file mode 100644
index 806c21b..0000000
--- a/app/src/main/java/com/example/kotlinhomework/MainActivity.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package com.example.kotlinhomework;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.Button;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.appcompat.app.AppCompatActivity;
-
-public class MainActivity extends AppCompatActivity {
-
- private String greetings;
- private String name;
- private TextView textView;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
-
- greetings = getString(R.string.hello);
- if (savedInstanceState != null && savedInstanceState.getString(NAME_KEY) != null) {
- name = savedInstanceState.getString(NAME_KEY);
- } else {
- name = getString(R.string.anon);
- }
-
- textView = findViewById(R.id.textViewHello);
-
- Button button = findViewById(R.id.buttonNameYourSelf);
- button.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- Intent intent = new Intent(MainActivity.this, SecondActivity.class);
- startActivityForResult(intent, SecondActivity.GET_NAME_REQUEST_CODE);
- }
- });
- }
-
- @Override
- protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
-
- if (requestCode == SecondActivity.GET_NAME_REQUEST_CODE && resultCode == RESULT_OK && data != null) {
- String nameFromData = data.getStringExtra(SecondActivity.NAME_KEY);
-
- if (nameFromData != null) {
- name = nameFromData;
- }
- }
- }
-
- @Override
- protected void onResume() {
- super.onResume();
- textView.setText(String.format("%s, %s!", greetings, name));
- }
-
- @Override
- protected void onSaveInstanceState(@NonNull Bundle outState) {
- super.onSaveInstanceState(outState);
- outState.putString(NAME_KEY, name);
- }
-
- private static final String NAME_KEY = "com.example.kotlinhomework.MainActivity.NAME_KEY";
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/kotlinhomework/NewMainActivity.kt b/app/src/main/java/com/example/kotlinhomework/NewMainActivity.kt
new file mode 100644
index 0000000..20d96a5
--- /dev/null
+++ b/app/src/main/java/com/example/kotlinhomework/NewMainActivity.kt
@@ -0,0 +1,62 @@
+package com.example.kotlinhomework
+
+import android.content.Intent
+import android.os.Bundle
+import android.os.PersistableBundle
+import android.util.Log
+import android.widget.TextView
+import androidx.appcompat.app.AppCompatActivity
+import com.example.kotlinhomework.databinding.ActivityNewMainBinding
+
+class NewMainActivity : AppCompatActivity() {
+
+ private lateinit var greetings: String
+ private lateinit var name: String
+ private lateinit var textView: TextView
+
+ private val binding: ActivityNewMainBinding by lazy {
+ val tmpBinding = ActivityNewMainBinding.inflate(layoutInflater)
+ setContentView(tmpBinding.root)
+ tmpBinding
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ greetings = getString(R.string.hello)
+ name = getString(R.string.anon)
+
+ savedInstanceState?.getString(NAME_KEY)?.let {
+ name = it
+ }
+
+ textView = binding.textViewHello
+ binding.buttonNameYourSelf.setOnClickListener {
+ startActivityForResult(Intent(this, NewSecondActivity::class.java), NewSecondActivity.GET_NAME_REQUEST_CODE)
+ }
+ }
+
+ override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+ super.onActivityResult(requestCode, resultCode, data)
+ if (requestCode == NewSecondActivity.GET_NAME_REQUEST_CODE && resultCode == RESULT_OK && data != null){
+ data.getStringExtra((NewSecondActivity.NAME_KEY))?.let{
+ name = it
+ }
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ textView.text = getString(R.string.format_string, greetings, name)
+ }
+
+ override fun onSaveInstanceState(outState: Bundle) {
+ super.onSaveInstanceState(outState)
+ outState.putString(NAME_KEY, name)
+ }
+
+
+ companion object {
+ const val NAME_KEY = "com.example.kotlinhomework.MainActivity.NAME_KEY"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/kotlinhomework/NewSecondActivity.kt b/app/src/main/java/com/example/kotlinhomework/NewSecondActivity.kt
new file mode 100644
index 0000000..4a130cc
--- /dev/null
+++ b/app/src/main/java/com/example/kotlinhomework/NewSecondActivity.kt
@@ -0,0 +1,63 @@
+package com.example.kotlinhomework
+
+import android.content.Intent
+import androidx.appcompat.app.AppCompatActivity
+import android.os.Bundle
+import android.text.Editable
+import android.text.TextWatcher
+import android.util.Log
+import android.widget.Button
+import android.widget.EditText
+import androidx.core.widget.addTextChangedListener
+import com.example.kotlinhomework.databinding.ActivityNewMainBinding
+import com.example.kotlinhomework.databinding.ActivityNewSecondBinding
+
+class NewSecondActivity : AppCompatActivity() {
+
+ private lateinit var editText: EditText
+ private lateinit var button: Button
+
+ private val binding: ActivityNewSecondBinding by lazy {
+ val tmpBinding = ActivityNewSecondBinding.inflate(layoutInflater)
+ setContentView(tmpBinding.root)
+ tmpBinding
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ editText = binding.editTextTextPersonName
+ button = binding.buttonName
+ button.isEnabled = false
+ editText.addTextChangedListener(object : TextWatcher{
+ override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
+ // Nothing to do
+ }
+
+ override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
+ // Nothing to do
+ }
+
+ override fun afterTextChanged(s: Editable?) {
+ s?.let {
+ if(it.isNotEmpty()) button.isEnabled = true
+ }
+
+ }
+
+ })
+
+ button.setOnClickListener {
+ val intent = Intent().apply {
+ putExtra(NAME_KEY, editText.text.toString())
+ }
+ setResult(RESULT_OK, intent)
+ finish()
+ }
+ }
+
+ companion object {
+ const val NAME_KEY = "com.example.kotlinhomework.SecondActivity.NAME_KEY"
+ const val GET_NAME_REQUEST_CODE = 1234
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/kotlinhomework/SecondActivity.java b/app/src/main/java/com/example/kotlinhomework/SecondActivity.java
deleted file mode 100644
index 95099d2..0000000
--- a/app/src/main/java/com/example/kotlinhomework/SecondActivity.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package com.example.kotlinhomework;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.text.Editable;
-import android.text.TextUtils;
-import android.text.TextWatcher;
-import android.view.View;
-import android.widget.Button;
-import android.widget.EditText;
-
-import androidx.appcompat.app.AppCompatActivity;
-
-public class SecondActivity extends AppCompatActivity {
-
- private EditText editText;
- private Button button;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_second);
-
- editText = findViewById(R.id.editTextTextPersonName);
- button = findViewById(R.id.buttonName);
- button.setEnabled(false);
- editText.addTextChangedListener(new TextWatcher() {
- @Override
- public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
- // Nothing to do
- }
-
- @Override
- public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
- // Nothing to do
- }
-
- @Override
- public void afterTextChanged(Editable editable) {
- button.setEnabled(!TextUtils.isEmpty(editable));
- }
-
- });
- button.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- Intent intent = new Intent();
- intent.putExtra(NAME_KEY, editText.getText().toString());
- setResult(RESULT_OK, intent);
- finish();
- }
- });
- }
-
- public static final String NAME_KEY = "com.example.kotlinhomework.SecondActivity.NAME_KEY";
- public static final int GET_NAME_REQUEST_CODE = 1234;
-}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_new_main.xml
similarity index 94%
rename from app/src/main/res/layout/activity_main.xml
rename to app/src/main/res/layout/activity_new_main.xml
index a68be6c..9cd0b4e 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_new_main.xml
@@ -3,8 +3,7 @@
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=".MainActivity">
+ android:layout_height="match_parent">
Anon
Enter your name
That\'s my name!
+ %s, %s!
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index d120dda..7132cba 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,11 +1,13 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
+ ext.kotlin_version = '1.4.21'
repositories {
google()
jcenter()
}
dependencies {
classpath "com.android.tools.build:gradle:7.0.0-alpha02"
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files