【问题标题】:Using Radio button (radio group) instead of two simple button使用单选按钮(单选组)代替两个简单的按钮
【发布时间】:2013-04-15 04:20:14
【问题描述】:

我使用两个简单的按钮成功地将字符串从我的 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();


    }
});
       }

     }

【问题讨论】:

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


【解决方案1】:

让我们考虑一下,

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)
            }
        }
    });

【讨论】:

    【解决方案2】:

    我认为您想研究使用CheckBox 而不是单选按钮组。这是一个简单的两种状态按钮(选中或未选中)。来自文档:

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

    【讨论】:

    • 这不适用,因为 OP 使用的是 Android,它没有实现 Swing 组件
    • @MattTaylor 对。抱歉,我错过了那个细节。
    猜你喜欢
    • 1970-01-01
    • 2019-10-04
    • 2023-02-03
    • 2017-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多