【问题标题】:Selection of Radiobutton in androidandroid中单选按钮的选择
【发布时间】:2013-02-02 14:38:40
【问题描述】:

我正在开发一个应用程序,其中有一个包含三个单选按钮的活动。 这是我的 .xml 代码...

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="32dp"
        android:hint="@string/hint"
        android:ems="10" />

    <RadioGroup
        android:id="@+id/radioGroup"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="200dp"
        android:layout_marginLeft="30dp"
        android:gravity="center" >



         <RadioButton
             android:id="@+id/rad1"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginLeft="10dp"
             android:text="@string/rad1" />

         <RadioButton
             android:id="@+id/rad2"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginLeft="8dp"
             android:text="@string/rad2" />

          <RadioButton
            android:id="@+id/rad3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/rad3" 

            android:layout_marginLeft="8dp" />

    </RadioGroup>

</RelativeLayout>

我想将 edittext 的输入转换为 Text 、 Hexadecimal 、 Decimal 格式。 默认情况下,它是文本值。 当用户选择十六进制单选按钮时,文本应转换为十六进制。 之后,当用户选择十进制时,应将十六进制转换为十进制... 我的问题是,当用户输入单一格式时,如何转换为其他两种格式.. 我有转换的逻辑...... 请帮助我...谢谢...

【问题讨论】:

  • 这里有什么问题,男孩,从edittext中获取txt,在电台选择中,你已经有了对话逻辑,转换它并在同一个Edittext中再次显示。你想从我们这里得到什么?
  • 但是我有六种不同的三种格式的转换...文本到十进制,文本到十六进制,十进制到文本,十进制到十六进制,十六进制到十进制,十六进制到文本。当用户选择单选按钮时,这些不同的功能如何知道它必须从哪种格式转换为目标格式...
  • 转换时设置一些标志.. 转换时检查标志的条件
  • 正如@Deepzz 提到的,在单选按钮上使用一些标志和 CheckChange 侦听器,以便您可以在单选按钮检查事件上进行转换。
  • 你能给我举个简单的例子吗???

标签: android radio-button data-conversion


【解决方案1】:

很简单,只需在点击监听器上更改单选按钮上的编辑文本输入类型

          radio_bt_1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                  et_note_title.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
                    }
        });





          radio_bt_2.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                            et_note_title.setInputType(InputType.TYPE_CLASS_TEXT);
                    }
        });

并相应地更改您的输入类型。

【讨论】:

    【解决方案2】:

    现在我们开始... 在一天结束时... 终于

    import android.os.Bundle;
    import android.app.Activity;
    import android.text.InputType;
    import android.view.Menu;
    import android.widget.EditText;
    import android.widget.RadioGroup;
    import android.widget.RadioGroup.OnCheckedChangeListener;
    
    public class MainActivity extends Activity {
    
        private EditText et;
        private RadioGroup rg;
        int var=1 ;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            et = (EditText) findViewById(R.id.editText1);
            rg = (RadioGroup) findViewById(R.id.radioGroup);
            //rg.check(R.id.rad1);
    
    
    
            rg.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    
                @Override
                public void onCheckedChanged(RadioGroup arg0, int arg1) {
    
    
                    //D to T
    
                    if(arg1==R.id.rad1)
                    {
                        if(var==2)
                        {
                            char msg;
                            int num=0;
                            String str =et.getText().toString();
                            et.setText("");
                            String[] str1= str.split(" ");
                            String stringToAppend= "";
    
                            for(int i=0;i<str1.length;i++)
                            {
                                 num=Integer.parseInt(str1[i]);
                                 msg=(char) num;
                                 String out = Character.toString(msg);
                                 stringToAppend += out ;
                            }
    
                                et.setText(stringToAppend);
                              //  stringToAppend="";
    
                            var=1;
    
                        }
    
                        //H to T
    
                        if(var==3)
                        {
                            String string;
                            string = et.getText().toString();
                            et.setText("");
                            String[] str1=string.split(" ");
                            StringBuilder sb= new StringBuilder();
                            String strAppend="";
                            int a=0;
                            for(int i=0;i<str1.length;i++)
                            {
                                int hex = Integer.parseInt(str1[i], 16);
                                sb.append(hex + " ");
    
                            }
    
                            char msg;
                            int num=0;
                            String str =sb.toString();
                            String[] str2= str.split(" ");
                            String stringToAppend= "";
    
                            for(int i=0;i<str2.length;i++)
                            {
                                 num=Integer.parseInt(str2[i]);
                                 msg=(char) num;
                                 String out = Character.toString(msg);
                                 stringToAppend += out ;
                             }
                                 et.setText(stringToAppend);
    
                            var=1;
    
                        }
    
    
                        //var=0;
    
                    }
    
                    if(arg1== R.id.rad2)
                    {
                        // T to D
                        if(var==1)
                        {
                            try
                            {
                                String myString=et.getText().toString();
                                et.setText("");
                                String stringToAppend ="";
                                for(char item : myString.toCharArray())
                                {
                                    stringToAppend += ( (int)item) + " ";
                                }
                                et.setText(stringToAppend);
                                 //stringToAppend="";
                                 var=2;
    
                            }
    
                            catch(NumberFormatException e)
                            {
                                e.printStackTrace();
                            }
    
                        }
    
                        if(var==3)
                        {
                            //H to D
                            String str;
                            str = et.getText().toString();
                            et.setText("");
                            String[] str1=str.split(" ");
                            StringBuilder sb= new StringBuilder();
                            String strAppend="";
                            int a=0;
                            for(int i=0;i<str1.length;i++)
                            {
                                int hex = Integer.parseInt(str1[i], 16);
                                sb.append(hex + " ");
    
                            }
                            et.setText("" + sb);
                            //sb.setLength(0);
                            var=2;
    
                        }
    
    
                    }
    
                    if(arg1==R.id.rad3)
                    {
                        //T to H
                        if(var==1)
                        {
                            String str;
                            str = et.getText().toString();
                            et.setText("");
                            char[] chars = str.toCharArray();
                            StringBuffer strBuffer = new StringBuffer();
                            for (int i = 0; i < chars.length; i++) {
                                strBuffer.append(Integer.toHexString((int) chars[i]) + " ");
                            }
    
                            et.setText("" + strBuffer + "");
                            //strBuffer.setLength(0);
                            var=3;
    
                        }
    
                        //D to H
                        if(var==2)
                        {
                            String str =et.getText().toString();
                            et.setText("");
                            String[] str1= str.split(" ");
                            String stringToAppend ="";
                            for(int i=0;i<str1.length;i++)
                            {
                                stringToAppend += Integer.toHexString(Integer.parseInt(str1[i])) + " ";
                            }
    
                            et.setText(stringToAppend);
                            // stringToAppend="";
                             var=3;
                        }
    
    
                    }
                }
            });
        }
    
    }
    

    完整的解决方案...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-24
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多