如何将值从对话框事件传递到父活动?

时间:2018-10-03 17:53:35

标签: android dialog

我正在活动中创建一个对话框,该对话框应具有2个值,然后单击按钮将其发送回活动:

df1 <- data.frame(
  FirstName = c("Jon", "Rob", "Phil", "Andy"),
  BusName = c("Jon's Auto", "123 Taxis", "Plumber Phil", "Handy Plumbers"),
  stringsAsFactors = FALSE
)

df1$match <- mapply(grepl, df1$FirstName, df1$BusName)
print(df1$match)
#  Jon   Rob  Phil  Andy 
# TRUE FALSE  TRUE FALSE 

我已经创建了一个布局,并如上所述通过private AlertDialog.Builder blockDialog; blockDialog=new AlertDialog.Builder(AllMachine.this); blockDialog.setView(**R.layout.activityEnterMinutes**); AlertDialog myDialog=blockDialog.create(); myDialog.show(); 使用了它。我尝试在使用的setView的java文件中添加onClickListener。但是这种逻辑并没有体现出来。

现在,我的对话框可以正确打开,但是我需要帮助如何将在layout(EnterMinutes.java)中输入的值发送给父活动?如果您需要更多信息,请告诉我。 对话框布局代码

EditText

在我的家长活动中,我有下面的代码要求对话

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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/con"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:background="@color/card2back"
    android:orientation="vertical"
    tools:context=".Final_page">

    <TextView
        android:id="@+id/editText2"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@color/colorPrimary"
        android:ems="10"
        android:text="@string/machinetime"
        android:textAlignment="center"
        android:textColor="@color/white"
        android:textColorLink="@color/white"
        android:textSize="25sp"
        android:textStyle="bold"
        tools:textAlignment="center" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:layout_marginBottom="5dp"
        android:orientation="horizontal">

        <EditText
            android:id="@+id/edithr"
            android:layout_width="66dp"
            android:layout_height="50dp"
            android:layout_marginStart="125dp"
            android:hint="@string/hh"
            android:inputType="number"
            android:maxLength="2"
            android:scrollbars="vertical"
            android:textColorHint="@color/black"
            android:textColorLink="@color/black" />

        <EditText
            android:id="@+id/editmn"
            android:layout_width="66dp"
            android:layout_height="wrap_content"
            android:layout_marginEnd="125dp"
            android:hint="@string/mm"
            android:inputType="number"
            android:maxLength="2"
            android:textColorHint="@color/black"
            android:textColorLink="@color/black" />

    </LinearLayout>


    <Button
        android:id="@+id/buttonbloc"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="150dp"
        android:layout_marginEnd="68.5dp"
        android:layout_marginBottom="10dp"
        android:background="@color/colorPrimary"
        android:text="@string/bloc"
        android:textColor="@color/white" />
</LinearLayout>

1 个答案:

答案 0 :(得分:0)

解决方案:

为自定义对话框添加以下代码:

    final Dialog dialog = new Dialog(context);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.setCancelable(false);
    dialog.setContentView(R.layout.your_dialog_layout);

    EditText text1 = (EditText) dialog.findViewById(R.id.your_edittext_Id1);
    EditText text2 = (EditText) dialog.findViewById(R.id.your_edittext_Id2);

    Button dialogButton = (Button) dialog.findViewById(R.id.your_button_Id);
    dialogButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            String text1 = text1.getText.toString().trim();
            String text2 = text2.getText.toString().trim();

            .... (Write Whatever You Want The Button To Do)

        }
    });

    dialog.show();

根据上面的代码,当您单击按钮时,它将从两个EditText中获取数据并存储在这两个字符串中。您可以在任何需要的地方使用这些数据。

如有疑问,请发表评论。

希望有帮助。

相关问题