0

我正在开发一个应用程序,其中我有一个活动,其中有三个单选按钮。这是我的 .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 格式。默认情况下,它是文本值。当用户选择十六进制单选按钮时,文本应转换为十六进制。之后,当用户选择十进制时,应该将十六进制转换为十进制...我的问题是当用户输入单一格式时如何转换为其他两种格式..我有转换的逻辑...请帮助我……谢谢……

4

2 回答 2

0

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

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

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

于 2013-02-18T08:10:47.287 回答
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;
                    }


                }
            }
        });
    }

}

完整的解决方案...

于 2013-02-18T17:09:19.990 回答