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
4 changes: 3 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.kotlinhomework">

<application
Expand All @@ -19,7 +20,8 @@
<activity
android:name=".SecondActivity"
android:exported="false"
android:windowSoftInputMode="adjustResize" />
android:windowSoftInputMode="adjustResize"
tools:ignore="Instantiatable" />
</application>

</manifest>
62 changes: 62 additions & 0 deletions app/src/main/java/com/example/kotlinhomework/MainActivity.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package com.example.kotlinhomework

import android.content.Intent
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import androidx.annotation.NonNull
import androidx.annotation.Nullable
import androidx.appcompat.app.AppCompatActivity
import com.example.kotlinhomework.SecondActivityJava.NAME_KEY

class MainActivity: AppCompatActivity() {
private var greetings: String? = null;
private var name: String? = null;
private var textView: TextView? = null;

override fun onCreate(savedInstanceState: Bundle?){
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)
val button = findViewById<Button>(R.id.buttonNameYourSelf)
/*button.setOnClickListener {
val intent = Intent(this@MainActivity, SecondActivity.class)
startActivityForResult(intent, SecondActivityJava.GET_NAME_REQUEST_CODE)
}*/
}

override protected fun onActivityResult(requestCode: Int, resultCode: Int, @Nullable data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)

if (requestCode == SecondActivity.GET_NAME_REQUEST_CODE && resultCode == RESULT_OK && data != null) {
val nameFromData = data!!.getStringExtra(SecondActivity.NAME_KEY)

if (nameFromData != null) {
name = nameFromData
}
}
}

override protected fun onResume() {
super.onResume()
textView!!.setText("${greetings}, ${name}!")
}

override protected fun onSaveInstanceState(@NonNull outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putString(NAME_KEY, name)
}

companion object {
private val NAME_KEY = "com.example.kotlinhomework.MainActivity.NAME_KEY"
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
public class MainActivityJava extends AppCompatActivity {

private String greetings;
private String name;
Expand All @@ -34,8 +34,8 @@ protected void onCreate(Bundle savedInstanceState) {
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);
Intent intent = new Intent(MainActivityJava.this, SecondActivityJava.class);
startActivityForResult(intent, SecondActivityJava.GET_NAME_REQUEST_CODE);
}
});
}
Expand All @@ -44,8 +44,8 @@ public void onClick(View view) {
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 (requestCode == SecondActivityJava.GET_NAME_REQUEST_CODE && resultCode == RESULT_OK && data != null) {
String nameFromData = data.getStringExtra(SecondActivityJava.NAME_KEY);

if (nameFromData != null) {
name = nameFromData;
Expand Down
57 changes: 57 additions & 0 deletions app/src/main/java/com/example/kotlinhomework/SecondActivity.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
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

class SecondActivity : AppCompatActivity() {

private var editText: EditText? = null
private var button: Button? = null

override protected fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_second)

editText = findViewById(R.id.editTextTextPersonName)
button = findViewById(R.id.buttonName)
button!!.setEnabled(false)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не стоит использовать !! без особой нужны. Всегда лучше отдавать предпочтение безопасному вызову через ?. или, если нужно проверить эту переменную и использовать ее дальше несколько раз, то ?.let { value -> /* some code */ }

editText!!.addTextChangedListener(object : TextWatcher {

override fun beforeTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {
// Nothing to do
}

override fun onTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {
// Nothing to do
}

override fun afterTextChanged(editable: Editable) {
button!!.setEnabled(!TextUtils.isEmpty(editable))
}

})
button!!.setOnClickListener(object : View.OnClickListener {

override fun onClick(view: View) {
val intent = Intent()
intent.putExtra(NAME_KEY, editText!!.getText().toString())
setResult(RESULT_OK, intent)
finish()
}
})
}

companion object {

val NAME_KEY = "com.example.kotlinhomework.SecondActivity.NAME_KEY"
val GET_NAME_REQUEST_CODE = 1234
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

import androidx.appcompat.app.AppCompatActivity;

public class SecondActivity extends AppCompatActivity {
public class SecondActivityJava extends AppCompatActivity {

private EditText editText;
private Button button;
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
tools:context=".MainActivityJava">

<TextView
android:id="@+id/textViewHello"
Expand Down