![](/img/trans.png)
[英]New to programming, Java.lang.NullPointerException with ArrayList
[英]java.lang.nullPointerException while performing Socket programming..How to use same socket object
密码.java
package com.example.vnc;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.UnknownHostException;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class Password extends MainActivity{
Button submit;
EditText pass;
String data;
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.sec);
submit=(Button) findViewById(R.id.submit);
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
pass=(EditText)findViewById(R.id.editText1);
data=pass.getText().toString();
try{
PrintWriter out=new PrintWriter(soc.getOutputStream(),true);
out.write(data);
out.close();
}
catch(UnknownHostException e)
{
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
Intent next2=new Intent(Password.this,Security.class);
startActivity(next2);
}
});
}
MainActivity.java
package com.example.vnc;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity
{
Button connect;
EditText ipadd,portadd;
Socket soc;
String ip,port;
int port1;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
connect=(Button) findViewById(R.id.button1);
connect.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
ipadd=(EditText) findViewById(R.id.editText1);
portadd=(EditText) findViewById(R.id.editText2);
ip=ipadd.getText().toString();
port=portadd.getText().toString();
port1=Integer.parseInt(port);
new Thread(new Runnable()
{
public void run()
{
try{
soc=new Socket(ip,port1);
}
catch(UnknownHostException e)
{
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
}).start();
Toast.makeText(MainActivity.this,"Connecting to Server"+ip,Toast.LENGTH_LONG).show();
Intent next1=new Intent(MainActivity.this,Password.class);
startActivity(next1);
}
});
}
}
这是在android中。 MainActivity类具有Socket连接,我正在扩展MainActivity类。 我在printwriter使用相同的socket soc,它在printwriter行给了我错误null指针异常。
请告诉我应该怎么做? 我如何在2类上使用相同的套接字
Password
实例与MainActivity
实例不同。 因此,它们不共享状态,因此soc
实例var为空。 您可能尝试在启动“ Password
活动时将其传递。 您可以使用Intent.putExtra
做到这Intent.putExtra
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.