使用单选按钮(单选按钮组)代替两个简单按钮

时间:2013-04-22 09:53:20

标签: java android radio-button android-wifi radio-group

我使用两个简单的按钮成功地将字符串从我的android传递到计算机(通过WiFi)。但我的问题是我想使用单个单选按钮(作为切换)而不是两个简单的按钮。这是我的代码

          import java.io.IOException;
          import java.io.PrintWriter;
          import java.net.Socket;
          import java.net.UnknownHostException;

          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 String messsage;

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


          button = (Button) findViewById(R.id.button1);
          button1 = (Button) findViewById(R.id.button2);
          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();


    }
});
       }

     }

2 个答案:

答案 0 :(得分:0)

让我们考虑一下,

  

RadioButtonGroup ID:ControlTVRadioButtonGroup

     

此组中的单选按钮为:TV_on_rb和TV_off_rb

<强>码

ControlTVRadioButtonGroup= (RadioGroup) view.findViewById(R.id.ControlTVRadioButtonGroup);

ControlTVRadioButtonGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {

            if(checkedId == R.id.TV_on_rb)
            {
                   //code you have written in onclick of button (i.e for tv_on)
            }
            else if(checkedId == R.id.TV_off_rb)
            {
                 //code you have written in onclick of button1 (i.e for tv_off)
            }
        }
    });

答案 1 :(得分:0)

我认为您希望使用CheckBox而不是单选按钮组。这是一个简单的双状态按钮(已选中或未选中)。来自文档:

final CheckBox checkBox = (CheckBox) findViewById(R.id.checkbox_id);
if (checkBox.isChecked()) {
    checkBox.setChecked(false);
}