Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java NullPointerException:DialogAlert中的EditText_Java_Android_Nullpointerexception_Dialog_Android Edittext - Fatal编程技术网

Java NullPointerException:DialogAlert中的EditText

Java NullPointerException:DialogAlert中的EditText,java,android,nullpointerexception,dialog,android-edittext,Java,Android,Nullpointerexception,Dialog,Android Edittext,我在对话框alert中使用EditText得到了NullPointerException。我的代码如下所示: public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); s

我在
对话框alert
中使用
EditText
得到了
NullPointerException
。我的代码如下所示:

        public class MainActivity extends ActionBarActivity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        WelcomeDialog();
        }

            public Dialog WelcomeDialog() {

                AlertDialog.Builder builder = new AlertDialog.Builder(this);

                builder.setTitle("Server");
                builder.setMessage("Enter ADDRESS and PORT:");
                // Get the layout inflater
                LayoutInflater inflater = this.getLayoutInflater();
                // Pass null as the parent view because its going in the dialog layout
                View v = inflater.inflate(R.layout.dialog_welcome, null);
                builder.setView(v);
                // Use an EditText view to get user input.
                final EditText input1 = new EditText(this);
                input1.setId(address);
                builder.setView(input1);
                final EditText ETaddress = (EditText) v.findViewById(address);

                final EditText input2 = new EditText(this);
                input2.setId(port);
                builder.setView(input2);
                final EditText ETport = (EditText) v.findViewById(port);
                builder.setView(v)
                // Inflate and set the layout for the dialog
                        // Add action buttons
                        .setPositiveButton("connect", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int id) {
                                // The NULLPOINTER is in this line:
                                String str1 = ETaddress.getText().toString();
                                ((VariableHolder) getApplication()).setADDRESS(str1);
                                int str2 = Integer.parseInt(ETport.getText().toString());
                                ((VariableHolder) getApplication()).setPORT(str2);
                                set = true;

                            }
                        });
                builder.create().show();
                return builder.create();
            }
      }
}
我怀疑问题就在这里(错误的声明或类似的东西):

…但我不知道怎么了。有什么想法吗

编辑:

以下是logcat输出:

> 01-06 19:40:28.241    4694-4694/com.example.console2
> E/AndroidRuntime﹕ FATAL EXCEPTION: main
>     java.lang.NullPointerException
>             at com.example.MainActivity$2.onClick(MainActivity.java:88)
>             at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
>             at android.os.Handler.dispatchMessage(Handler.java:99)
>             at android.os.Looper.loop(Looper.java:137)
>             at android.app.ActivityThread.main(ActivityThread.java:4611)
>             at java.lang.reflect.Method.invokeNative(Native Method)
>             at java.lang.reflect.Method.invoke(Method.java:511)
>             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
>             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
>             at dalvik.system.NativeStart.main(Native Method)

该v视图不包含您的edittext,因此v.findViewById(地址)将仅返回null

试试这个


该v视图不包含您的编辑文本,因此v.findViewById(地址)将仅返回null

试试这个


如果你怀疑这是个问题,那就做下一步! 1移除所有最终修改器! 2在
setContentView(R.layout.activity_main)之后找到他们的视图像这样

public class MainActivity extends ActionBarActivity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
     EditText input1 = new (EditText)findViewById(R.id.yourEditTextId);
     EditText ETaddress = (EditText)findViewById(R.id.yourEditTextId);

剩下的就做吧

如果你怀疑这是个问题,那就做下一个! 1移除所有最终修改器! 2在
setContentView(R.layout.activity_main)之后找到他们的视图像这样

public class MainActivity extends ActionBarActivity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
     EditText input1 = new (EditText)findViewById(R.id.yourEditTextId);
     EditText ETaddress = (EditText)findViewById(R.id.yourEditTextId);

剩下的就做吧

好吧,那是个愚蠢的错误。仅在地址前分别忘记了
R.id

final EditText ETaddress = (EditText)v.findViewById(R.id.address); // R.id. !!!

好吧,那是个愚蠢的错误。仅在地址前分别忘记了
R.id

final EditText ETaddress = (EditText)v.findViewById(R.id.address); // R.id. !!!

你能发布你的logcat错误跟踪吗?请添加崩溃日志。为什么你要多次使用
builder.setView()
方法?以至于v视图不包含你的编辑文本。v、 findViewById(address)这将只返回null。需要一个日志猫,因为null可能出现在代码的每个地方,我认为这是在编辑文本阶段,只需发布日志猫!你能发布你的logcat错误跟踪吗?请添加崩溃日志。为什么你要多次使用
builder.setView()
方法?以至于v视图不包含你的编辑文本。v、 findViewById(address)这将只返回null。需要一个日志猫,因为null可能出现在代码的每个地方,我认为这是在编辑文本阶段,只需发布日志猫!你能看到他正在运行时创建
input1
,并使用充气器从另一个视图中提取
ETaddress
?你的回答没有帮助。此外,删除final也不能防止崩溃,事实上,他不能在listeners方法中使用final。原因是不同的,我们不能在不看到logcat错误跟踪的情况下说任何事情。是的,确定它是错误的,这就是我发布此代码的原因,他只需要先找到视图,然后做他的事情扫描您看到他正在运行时创建
input1
,并使用充气器从另一个视图提取
ETaddress
?你的回答没有帮助。此外,删除final也不能防止崩溃,事实上,他不能在listeners方法中使用final。原因是不同的,我们不能不看到logcat错误跟踪就说任何事情。是的,确定它是错误的,这就是我发布此代码的原因,他只需要先找到视图,然后再做他的事情