android tcp 获取ip,Android tcp/ip读取和写入缓冲区主要代码

在Android应用中,作者试图在MainActivity和Fragment1中通过按钮操作TCP/IP缓冲区,但在调用sendMessage方法时遇到了NullPointerException。问题出现在尝试在一个可能未初始化的对象上调用方法。代码示例展示了MainActivity和Fragment1的交互,以及AsyncTask的使用来执行后台任务。
摘要由CSDN通过智能技术生成

我可以在Main layout和MainActivity java上用一个按钮读写TCP/IP缓冲区。Android tcp/ip读取和写入缓冲区主要代码

但不能这样做不同的片段或不同的布局。

错误信息是:

显示java.lang.NullPointerException:尝试一个空对象上调用虚拟方法 '无效com.example.murat.ev.TcpClient.sendMessage(java.lang.String中)'参考

我的代码:

MainActivity.java

public class MainActivity extends AppCompatActivity {

public TcpClient mTcpClient;

public Thread send_data;

public Button button;

public byte data[]=new byte[1024];

public DatabaseConstruction db;

@Override

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

db = new DatabaseConstruction(getApplicationContext());

new datasync().execute("");

FragmentManager fragmentManager = getSupportFragmentManager();

FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

Fragment1 fragment1=new Fragment1();

fragmentTransaction.replace(R.id.container, fragmen1_layout);

fragmentTransaction.commit();

button=(Button)findViewById(R.id.button);

button.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

send_data_pre();

}

});

}

public class datasync extends AsyncTask

{

@Override

protected TcpClient doInBackground(String... message)

{

//we create a TCPClient object and

mTcpClient = new TcpClient(new TcpClient.OnMessageReceived()

{

@Override

//here the messageReceived method is implemented

public void messageReceived(String message)

{

Log.i("Debug","Input message: " + message);

publishProgress(message);

}

});

mTcpClient.run();

return null;

}

@Override

protected void onProgressUpdate(String... values)

{

super.onProgressUpdate(values);

Log.i("onProgressUpdate",values[0]);

}

}

public void send_data_pre()

{

send_data = new Thread(new send_data("hello"));

send_data.start();

}

public class send_data implements Runnable

{

private String message;

public send_data (String message)

{

this.message = message;

}

@Override

public void run()

{

mTcpClient.sendMessage(message);

Log.i("Debug", "mesaj did send");

}

}

}

Fragment1.java

public class Fragment1 extends Fragment {

Button button1;

MainActivity main=new MainActivity();

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState)

{

View view = inflater.inflate(R.layout.fragment1_layout, container, false);

button1 =(Button)view.findViewById(R.id.buton_1);

button1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

main.send_data(); THIS HERE IS APP STOP AND ERROR

}

});

return view;

}

}

2017-02-20

Murat

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值