Created
April 8, 2021 16:59
-
-
Save codinginflow/11e5acb69a91db8f2be0f8e495505d12 to your computer and use it in GitHub Desktop.
Custom Dialog + Interface Tutorial
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<RelativeLayout 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="com.example.application.example.MainActivity"> | |
<TextView | |
android:id="@+id/textview_username" | |
android:layout_width="match_parent" | |
android:layout_height="wrap_content" | |
android:layout_alignParentStart="true" | |
android:layout_centerVertical="true" | |
android:gravity="center_horizontal" | |
android:text="here will be our username" | |
android:textSize="30sp" /> | |
<TextView | |
android:id="@+id/textview_password" | |
android:layout_width="match_parent" | |
android:layout_height="wrap_content" | |
android:layout_below="@id/textview_username" | |
android:layout_alignParentStart="true" | |
android:gravity="center_horizontal" | |
android:text="here will be our password" | |
android:textSize="30sp" /> | |
<Button | |
android:id="@+id/button" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:layout_below="@id/textview_password" | |
android:layout_centerHorizontal="true" | |
android:text="open dialog" /> | |
</RelativeLayout> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.application.example; | |
import android.app.Dialog; | |
import android.content.Context; | |
import android.content.DialogInterface; | |
import android.os.Bundle; | |
import android.support.v7.app.AlertDialog; | |
import android.support.v7.app.AppCompatDialogFragment; | |
import android.view.LayoutInflater; | |
import android.view.View; | |
import android.widget.EditText; | |
public class ExampleDialog extends AppCompatDialogFragment { | |
private EditText editTextUsername; | |
private EditText editTextPassword; | |
private ExampleDialogListener listener; | |
@Override | |
public Dialog onCreateDialog(Bundle savedInstanceState) { | |
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); | |
LayoutInflater inflater = getActivity().getLayoutInflater(); | |
View view = inflater.inflate(R.layout.layout_dialog, null); | |
builder.setView(view) | |
.setTitle("Login") | |
.setNegativeButton("cancel", new DialogInterface.OnClickListener() { | |
@Override | |
public void onClick(DialogInterface dialogInterface, int i) { | |
} | |
}) | |
.setPositiveButton("ok", new DialogInterface.OnClickListener() { | |
@Override | |
public void onClick(DialogInterface dialogInterface, int i) { | |
String username = editTextUsername.getText().toString(); | |
String password = editTextPassword.getText().toString(); | |
listener.applyTexts(username, password); | |
} | |
}); | |
editTextUsername = view.findViewById(R.id.edit_username); | |
editTextPassword = view.findViewById(R.id.edit_password); | |
return builder.create(); | |
} | |
@Override | |
public void onAttach(Context context) { | |
super.onAttach(context); | |
try { | |
listener = (ExampleDialogListener) context; | |
} catch (ClassCastException e) { | |
throw new ClassCastException(context.toString() + | |
"must implement ExampleDialogListener"); | |
} | |
} | |
public interface ExampleDialogListener { | |
void applyTexts(String username, String password); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent" | |
android:padding="16dp"> | |
<EditText | |
android:id="@+id/edit_username" | |
android:layout_width="match_parent" | |
android:layout_height="wrap_content" | |
android:hint="Username" /> | |
<EditText | |
android:id="@+id/edit_password" | |
android:layout_width="match_parent" | |
android:layout_height="wrap_content" | |
android:layout_below="@id/edit_username" | |
android:layout_alignParentStart="true" | |
android:hint="Password" | |
android:inputType="textPassword" /> | |
</RelativeLayout> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.application.example; | |
import android.support.v7.app.AppCompatActivity; | |
import android.os.Bundle; | |
import android.view.View; | |
import android.widget.Button; | |
import android.widget.TextView; | |
public class MainActivity extends AppCompatActivity implements ExampleDialog.ExampleDialogListener { | |
private TextView textViewUsername; | |
private TextView textViewPassword; | |
private Button button; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
textViewUsername = (TextView) findViewById(R.id.textview_username); | |
textViewPassword = (TextView) findViewById(R.id.textview_password); | |
button = (Button) findViewById(R.id.button); | |
button.setOnClickListener(new View.OnClickListener() { | |
@Override | |
public void onClick(View v) { | |
openDialog(); | |
} | |
}); | |
} | |
public void openDialog() { | |
ExampleDialog exampleDialog = new ExampleDialog(); | |
exampleDialog.show(getSupportFragmentManager(), "example dialog"); | |
} | |
@Override | |
public void applyTexts(String username, String password) { | |
textViewUsername.setText(username); | |
textViewPassword.setText(password); | |
} | |
} |
fuseg
Hello, I convert your tutorial to kotlin
When you can please look if everything is correct
https://gist.github.com/ispite/3220794fe5032abcabe06bf6cd4ee9e1
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks, man)