带有对话框的findViewbyID

时间:2016-03-04 14:41:30

标签: android dialog findviewbyid

我正在尝试在特定对话框中提取用户输入。 但是,当我尝试使用findViewbyID并放入

final EditText ExceedingLimitInput = (EditText)dialog.findViewbyId(R.id.ExceedingLimitInput);

Android Studio说没有定义对话框。我不太清楚我应该在这做什么。

我已经挖掘了一些与此相关的问题,但是大多数问题只涉及片段使用,而我没有使用任何片段。也许我正在扩展错误的课程?

有人可以说明为什么没有定义对话框,以及我如何解决它?

以下是我的参考代码:

设置菜单(主类)

package com.example.denny.protoype2;

import android.app.Dialog;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;


public class SettingsMenu extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_settings_menu);
        //Exceeding Limit Dialog
        final Button ExceedingLimitButton = (Button)findViewById(R.id.ExceedingLimitButton);
        ExceedingLimitButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Dialog ExceedingLimitDialog = new Dialog(SettingsMenu.this);
                ExceedingLimitDialog.setTitle("Exceeding Limit Dialog");
                ExceedingLimitDialog.setContentView(R.layout.exceeding_limit_dialog);
                ExceedingLimitDialog.show();

                final EditText ExceedingLimitInput = (EditText)dialog.findViewbyId(R.id.ExceedingLimitInput);

            }
        });
    }
}

2 个答案:

答案 0 :(得分:5)

喜欢

 final EditText ExceedingLimitInput = (EditText)ExceedingLimitDialog.findViewbyId(R.id.ExceedingLimitInput);
在你的情况下

dailog == ExceedingLimitDialog

答案 1 :(得分:1)

首先,你应该夸大你的观点

View view = View.inflate(this, R.layout.exceeding_limit_dialog, null);

然后将其设置为对话框

ExceedingLimitDialog.setContentView(view);

最后你可以找到你的EditText

final EditText ExceedingLimitInput = (EditText) view.findViewById(R.id.ExceedingLimitInput);