Java 通过使用wifi的单个切换按钮将两个不同的字符串从android传递到pc

Java 通过使用wifi的单个切换按钮将两个不同的字符串从android传递到pc,java,android,wifi,togglebutton,Java,Android,Wifi,Togglebutton,在我的android项目中,我已经通过使用WiFi的2个简单按钮成功地将2个字符串[(电视打开(按按钮1)和电视关闭(按按钮2)]从我的android手机传递到我的PC。但这里我需要使用单切换按钮[(电视打开(点击切换按钮)和电视关闭(再次点击切换按钮)]来传递2个字符串,而不是2个简单按钮(如上所述)。 对不起,我的英语不好。 谢谢你。 java代码- package com.example.wifitoggle; import java.io.IOExcep

在我的android项目中,我已经通过使用WiFi的2个简单按钮成功地将2个字符串[(电视打开(按按钮1)和电视关闭(按按钮2)]从我的android手机传递到我的PC。但这里我需要使用单切换按钮[(电视打开(点击切换按钮)和电视关闭(再次点击切换按钮)]来传递2个字符串,而不是2个简单按钮(如上所述)。 对不起,我的英语不好。 谢谢你。 java代码-

        package com.example.wifitoggle;

        import java.io.IOException;
        import java.io.PrintWriter;
        import java.net.Socket;
        import java.net.UnknownHostException;
        import android.widget.ToggleButton;
        import android.os.Bundle;
        import android.app.Activity;
        import android.view.View;
        import android.view.View.OnClickListener;
        import android.widget.Button;

        public class MainActivity extends Activity {


private Socket client;
private PrintWriter printwriter;

private Button button;
private Button button1;
private ToggleButton toggleButton1;
private String messsage;
int port = 0; //

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

 //   etIP = (EditText) findViewById(R.id.editText1);
  //  etPort = (EditText) findViewById(R.id.editText2);

    //etMsg = (EditText) findViewById(R.id.editText3);
    button = (Button) findViewById(R.id.button1);
    button1 = (Button) findViewById(R.id.button2);
    toggleButton1 = (ToggleButton) findViewById(R.id.toggleButton1);
    button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            messsage = "TV ON" ; //etMsg.getText().toString();
            //etMsg.setText("");
           // port = Integer.parseInt(etPort.getText().toString());

            new Thread(new Runnable() 
            {

                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    try 
                    {
                      //  client = new Socket(etIP.getText().toString(), port);
                        client = new Socket("1.2.3.4",2000);

                        printwriter = new                       PrintWriter(client.getOutputStream(),true);
                        printwriter.write(messsage);
                        printwriter.flush();
                        printwriter.close();
                        client.close();
                    }

                    catch (UnknownHostException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }       
                }
            }).start();


        }
    });



button1.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

        messsage = "TV OFF" ; //etMsg.getText().toString();
        //etMsg.setText("");
       // port = Integer.parseInt(etPort.getText().toString());

        new Thread(new Runnable() 
        {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                try 
                {
                  //  client = new Socket(etIP.getText().toString(), port);
                    client = new Socket("1.2.3.4",2000);

                    printwriter = new PrintWriter(client.getOutputStream(),true);
                    printwriter.write(messsage);
                    printwriter.flush();
                    printwriter.close();
                    client.close();
                }

                catch (UnknownHostException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }       
            }
        }).start();


    }
});


   }

     }
试试这个

toggleButton1.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if(isChecked){

                  //do something if on

            }else{

                 //do something if off               

        }
    });
另一种选择

 toggleButton1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {


            if((toggleButton1.isChecked()))
            {

                 //do something if on

            }
            else
            {
                 //do something if off

            }
        }
    });

这是正确的代码

  mToggleButton.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            if (mToggleButton.isChecked()) {
                messsage = "TV ON";
                Log.d("On", "Button On" + messsage);
                new Thread(new Runnable() {

                    public void run() {
                        // TODO Auto-generated method stub
                        try {
                            // client = new
                            // Socket(etIP.getText().toString(), port);
                            client = new Socket("1.2.3.4", 2000);

                            printwriter = new PrintWriter(client
                                    .getOutputStream(), true);
                            printwriter.write(messsage);
                            printwriter.flush();
                            printwriter.close();
                            client.close();
                        }

                        catch (UnknownHostException e) {
                            e.printStackTrace();
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }
                }).start();

            } else {

                messsage = "TV OFF";
                Log.d("off", "Button off " + messsage);// etMsg.getText().toString();
                // etMsg.setText("");
                // port = Integer.parseInt(etPort.getText().toString());

                new Thread(new Runnable() {

                    public void run() {
                        // TODO Auto-generated method stub
                        try {
                            // client = new
                            // Socket(etIP.getText().toString(), port);
                            client = new Socket("1.2.3.4", 2000);

                            printwriter = new PrintWriter(client
                                    .getOutputStream(), true);
                            printwriter.write(messsage);
                            printwriter.flush();
                            printwriter.close();
                            client.close();
                        }

                        catch (UnknownHostException e) {
                            e.printStackTrace();
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }
                }).start();

            }

        }
    });

    new Thread(new Runnable() {

        public void run() {
            // TODO Auto-generated method stub
            try {
                // client = new Socket(etIP.getText().toString(), port);
                client = new Socket("1.2.3.4", 2000);

                printwriter = new PrintWriter(client.getOutputStream(),
                        true);
                printwriter.write(messsage);
                printwriter.flush();
                printwriter.close();
                client.close();
            }

            catch (UnknownHostException e) {
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }).start();

我试过上面的代码,但不幸的是,程序停止了。