2019 May 19.
https://www.ipentec.com/document/android-custom-dialog-using-dialogfragment-return-value より
<android.support.constraint.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=".MainActivity">
<TextView
android:id="@+id/textViewPhrase"
android:layout_width="0dp"
android:layout_height="66dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.118" />
</android.support.constraint.ConstraintLayout>
<android.support.constraint.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">
<TextView
android:id="@+id/textViewPhraseLabel"
android:layout_width="132dp"
android:layout_height="27dp"
android:text="Input text"
app:layout_constraintBottom_toTopOf="@+id/editTextPhrase"
tools:layout_editor_absoluteX="8dp" />
<EditText
android:id="@+id/editTextPhrase"
android:layout_width="381dp"
android:layout_height="52dp"
android:layout_marginTop="268dp"
android:ems="10"
android:inputType="text"
app:layout_constraintTop_toTopOf="parent"
tools:layout_editor_absoluteX="8dp" />
<Button
android:id="@+id/buttonOK"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="52dp"
android:layout_marginEnd="8dp"
android:text="OK"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editTextPhrase" />
</android.support.constraint.ConstraintLayout>
MainActivity.java
InputTextDialogFragment.java
https://www.ipentec.com/document/android-custom-dialog-using-dialogfragment-return-value より
[activity_main.xml]
<?xml version="1.0" encoding="utf-8"?><android.support.constraint.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=".MainActivity">
<TextView
android:id="@+id/textViewPhrase"
android:layout_width="0dp"
android:layout_height="66dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.118" />
</android.support.constraint.ConstraintLayout>
[input_text_dialog.xml]
<?xml version="1.0" encoding="utf-8"?><android.support.constraint.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">
<TextView
android:id="@+id/textViewPhraseLabel"
android:layout_width="132dp"
android:layout_height="27dp"
android:text="Input text"
app:layout_constraintBottom_toTopOf="@+id/editTextPhrase"
tools:layout_editor_absoluteX="8dp" />
<EditText
android:id="@+id/editTextPhrase"
android:layout_width="381dp"
android:layout_height="52dp"
android:layout_marginTop="268dp"
android:ems="10"
android:inputType="text"
app:layout_constraintTop_toTopOf="parent"
tools:layout_editor_absoluteX="8dp" />
<Button
android:id="@+id/buttonOK"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="52dp"
android:layout_marginEnd="8dp"
android:text="OK"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editTextPhrase" />
</android.support.constraint.ConstraintLayout>
MainActivity.java
- package YOUR.PACKAGE;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.widget.TextView;
- public class MainActivity extends AppCompatActivity {
- boolean is1stRun = true;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- if ( is1stRun ) {
- // get text by dialog
- InputTextDialogFragment cdf = new InputTextDialogFragment();
- cdf.show(getSupportFragmentManager(),"dialog");
- is1stRun = false;
- }
- }
- public void onReturnValue(String value) {
- TextView textViewPhrase = (TextView)findViewById(R.id.textViewPhrase);
- textViewPhrase.setText(value);
- }
- }
InputTextDialogFragment.java
- package YOUR.PACKAGE;
- import android.app.Dialog;
- import android.os.Bundle;
- import android.support.v4.app.DialogFragment;
- import android.view.View;
- import android.view.Window;
- import android.view.WindowManager;
- import android.widget.EditText;
- public class InputTextDialogFragment extends DialogFragment {
- EditText editTextPhrase;
- @Override
- public Dialog onCreateDialog(Bundle savedInstanceState) {
- Dialog dialog = new Dialog(getActivity());
- dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
- dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
- WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
- dialog.setContentView(R.layout.input_text_dialog);
- editTextPhrase = (dialog.findViewById(R.id.editTextPhrase));
- dialog.findViewById(R.id.buttonOK).setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String textPhrase = editTextPhrase.getText().toString();
- MainActivity callingActivity = (MainActivity) getActivity();
- callingActivity.onReturnValue(textPhrase);
- dismiss();
- }
- });
- return dialog;
- }
- }
0 件のコメント:
コメントを投稿