java将数据从对话框传递到活动Android
我有问题。 我用自己的布局创建了一个对话框。我不知道如何将EditText和asing中的值(字符串)传递给活动中的任何变量。 在评论中你可以看到我是如何试图解决这个问题的
Java方法
public void makeDialog(){
// custom dialog
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.dialog_ip);
dialog.setTitle("IP connection");
// Todo passing value from dialog to activity
// final EditText ipValueConnection = (EditText)findViewById(R.id.ipValueConnection);
// ipValueConnection.setOnClickListener(this);
// EditText portValueConnection = (EditText)findViewById(R.id.portValueConnection);
// Toast.makeText(context, ipValueConnection.getText().toString(), Toast.LENGTH_LONG).show();
Button dialogButtonLogin = (Button) dialog.findViewById(R.id.dialogButtonLogin);
// if button is clicked, close the custom dialog
dialogButtonLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tryToConnect();
dialog.dismiss();
}
});
// set the custom dialog components - text, image and button
// TextView text = (TextView) dialog.findViewById(R.id.IP);
dialog.show();
}
XML布局
<LinearLayout xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
安卓:orientation="vertical"
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content">
<ImageView
安卓:src="@drawable/antena"
安卓:layout_width="220dp"
安卓:layout_height="120dp"
安卓:scaleType="centerInside"
安卓:background="#FFFFBB33"
安卓:contentDescription="@string/app_name"
安卓:adjustViewBounds="true"
/>
<EditText
安卓:id="@+id/ipValueConnection"
安卓:inputType="textEmailAddress"
安卓:layout_width="match_parent"
安卓:layout_height="wrap_content"
安卓:layout_marginTop="16dp"
安卓:layout_marginLeft="4dp"
安卓:layout_marginRight="4dp"
安卓:layout_marginBottom="4dp"
安卓:hint="IP" />
<EditText
安卓:id="@+id/portValueConnection"
安卓:inputType="textPassword"
安卓:layout_width="match_parent"
安卓:layout_height="wrap_content"
安卓:layout_marginTop="4dp"
安卓:layout_marginLeft="4dp"
安卓:layout_marginRight="4dp"
安卓:layout_marginBottom="16dp"
安卓:fontFamily="sans-serif"
安卓:hint="PORT"/>
<Button
安卓:id="@+id/dialogButtonLogin"
安卓:layout_width="match_parent"
安卓:layout_height="wrap_content"
安卓:text="Login"
安卓:layout_marginTop="5dp"
/>
</LinearLayout>
# 1 楼答案
创建一个接口
调用它在活动onCreate()中实例化它
//在对话框类或方法中
# 2 楼答案
您收到的错误意味着在当前布局文件中找不到对editText的引用。您可以在“自定义对话框”视图而不是“活动”视图中找到编辑文本
因此,与其说:
使用: