![](/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.