2013-02-18 67 views
0

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

<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的输入文本,十六进制,十进制格式。 默认情况下,它是文本值。 当用户选择十六进制单选按钮时,文本应该被转换为十六进制。 之后,当用户选择十进制,然后十六进制应转换为十进制... 我的问题是如何在用户输入单一格式时转换为其他两种格式.. 我有转换逻辑.. 。 请帮我...谢谢...

+0

什么是这里的问题少年,从EditText上采取TXT,在无线电选择上,U已经有对话的逻辑,将它转换并再次显示在同一个Edittext中。你想从我们那里得到什么? – AAnkit 2013-02-18 07:59:35

+0

但我有三种格式的六种不同的转换... 文本到十二月,文本到十六进制,十二月到文本,十二进制到十六进制,十六进制到十二进制,十六进制到文本。 当用户选择单选按钮,那么这些不同的功能如何知道它从目标格式转换成哪种格式... – 2013-02-18 08:04:13

+0

转换时设置一些标志。检查标志的条件,同时将 – Deepzz 2013-02-18 08:10:44

回答

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

,并相应地更改开关输入类型。

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


       } 
      } 
     }); 
    } 

} 

完整的解决方案...