我有我的 fragment ,用户可以在其中将点发送给另一个用户,现在我需要创建自定义对话框,用户需要在其中重新输入他的 pin。我按照几个教程完成了它,但值始终为空;
public void onViewCreated(View view, Bundle savedInstanceState) {
LayoutInflater inflater = LayoutInflater.from(getContext());
View confirmation=inflater.inflate(R.layout.confirmation,null);
pin = (EditText) confirmation.findViewById(R.id.PinChecker);
}
SendPointsButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setView(R.layout.confirmation);
builder.setPositiveButton("DA", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
pinCheck= String.valueOf(pin.getText().toString());
Log.d("Pin",pinCheck);
}
我想将 pin(EditText) 的值赋给名为 pinCheck 的字符串;
最佳答案
我认为您应该将膨胀的布局(确认)传递给 builder.setView(),如下所示:
final View confirmation=inflater.inflate(R.layout.confirmation,null);
pin = (EditText) confirmation.findViewById(R.id.PinChecker);
....
SendPointsButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setView(confirmation);
builder.setPositiveButton("DA", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
pinCheck= String.valueOf(pin.getText().toString());
Log.d("Pin",pinCheck);
}
希望这会有所帮助。
关于java - 无法从我的 fragment 中的自定义对话框中获取字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37970176/