在android中选择单选按钮

时间:2013-02-18 07:54:59

标签: android radio-button data-conversion

我正在开发一个应用程序,其中我有一个活动,其中有三个radiobuttons。 这是我的.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>

我想以text,Hexadecimal,Decimal格式转换edittext的输入。 默认情况下,它是Text值。 当用户选择Hex单选按钮时,Text应转换为Hex。 之后,当用户选择Decimal时,则Hex应转换为Decimal ... 我的问题是当用户输入单格式时,如何转换其他两种格式。 我有转换的逻辑...... 请帮帮我......谢谢......

2 个答案:

答案 0 :(得分:0)

简单,只需更改单选按钮onclicklisteners

上的编辑文本输入类型
          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);
                    }
        });

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

答案 1 :(得分:0)

现在我们走吧...... 在一天结束时...... 最后

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


                }
            }
        });
    }

}

完整解决方案......