2013-02-18 74 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; 
        } 


       } 
      } 
     }); 
    } 

} 

完整的解決方案...

相關問題