2012-12-03 3 views
0

Итак, что я пытаюсь сделать здесь, это основная деятельность, где, если требования выполняются (правильное имя пользователя, пароль и мужской переключатель отмечены, а не женские), переключатели VM к деятельности «Успех». Если он не отвечает ни одному из этих 3 требований, виртуальная машина переключается на «Сбой» при нажатии кнопки. Я работаю правильно, за исключением кнопок радио.Radio Button (Android)

Я создал RadioGroup на макете, но я не уверен, как реализовать его в самом классе. Я предположил, что вам нужно найти идентификатор, переопределить прослушиватель и т. Д. И т. Д., Но он работает неправильно. Есть идеи? Я вынул большую часть свойств RadioGroup, прежде чем публиковать это, чтобы он был менее запутан.

Основная деятельность

import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.view.Menu; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.RadioGroup; 

public class MainActivity extends Activity implements RadioGroup.OnCheckedChangeListener 
{ 
    Button button; 
    EditText login; 
    EditText password; 
    RadioGroup mRadioGroup; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     button = (Button)findViewById(R.id.button1); 
     login =(EditText)findViewById(R.id.editText1); 
     password =(EditText)findViewById(R.id.editText2); 
     button.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View view) 
     { 
      String L,P;    

      L = login.getText().toString(); 
      P = password.getText().toString(); 


      if(L.equals("name") && P.equals("123456")) 
      { 
       Intent intent = new Intent(); 
       intent.setClass(MainActivity.this,Welcome.class); 
       startActivity(intent); 
      } 
      else 
      { 
       Intent intent1 = new Intent(); 
       intent1.setClass(MainActivity.this,Failed.class); 
       startActivity(intent1); 
      } 
     } 
    }); 




} 



    /* public void onRadioButtonClicked(View view) 
    { 
     boolean checked = ((RadioButton) view).isChecked(); 

     switch(view.getId()) 
     { 
      case R.id.radio1: 
       if (checked) 
       { 
       Intent intent4 = new Intent(); 
       intent4.setClass(MainActivity.this,Welcome.class); 
       startActivity(intent4); 
       } 
       break; 
      case R.id.radio0: 
       if (checked) 
       { 
       Intent intent2 = new Intent(); 
       intent2.setClass(MainActivity.this,Failed.class); 
       startActivity(intent2); 
       } 
       break; 
       } 
       } 
     */ 



    @Override 
    public boolean onCreateOptionsMenu(Menu menu) 
    { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 



    @Override 
    public void onCheckedChanged(RadioGroup group, int checkedId) 
    { 
     // TODO Auto-generated method stub 

    } 


} 

Failed активность

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 

public class Failed extends Activity 
{ 
    Button button; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.failed); 
     button = (Button)findViewById(R.id.button1);  
     button.setOnClickListener(new View.OnClickListener() 


    { 
     @Override 
     public void onClick(View view) 
     { 
      Intent intent3 = new Intent(); 
      intent3.setClass(Failed.this,MainActivity.class); 
      startActivity(intent3); 
     } 

    }); 
} 
} 

Успех деятельности

import android.app.Activity; 
import android.os.Bundle; 

public class Welcome extends Activity 
{ 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.success); 
    } 

} 

ответ

0

Попробуйте это, чтобы получить значение выбранного RadioButton и использовать его, чтобы проверить определенные условия в вашей код:

private RadioGroup radioOptionGrp; 
private RadioButton radioOptBtn; 

//Get Reference to Radio group which holds the radio buttons 
radioOptionGrp = (RadioGroup) findViewById(R.id.radioOpt); 

//Get id of selected radioButton 
int selectOptId = radioOptionGrp.getCheckedRadioButtonId(); 

//Get Reference to the Selected RadioButton 
radioOptBtn = (RadioButton) findViewById(selectOptId); 

//Get value of the selected Radio button 
String value = radioOptBtn.getText().toString();  

Надеюсь, это поможет! Вот пример кода, который вы можете скачать из GitHub, чтобы посмотреть, как работают RadioButtons. https://github.com/asabbarwal/SimpleRadioButton

+0

Удивительный. Получил это работу благодаря вам обоим: D Большой образец. Делает это очень ясно – user1780149

+0

Рад, что я и мой пример GitHub могли бы помочь :) –

0

Мой первый встреченный RadioButtons был слишком непростым. Но в принципе, это просто использовать.

private RadioGroup mRadioGroup; 
private View radioButton; 
int radioButtonID; 
int idx;   //index of radio item in the list 

public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
     mRadioGroup= (RadioGroup) findViewById(R.id.mRadioGroup);   
.... 
} 

Put эта часть кода к любому методу событий нажмите, IDX всегда будут возвращать индекс проверяемого радиокнопки:

radioButtonID = mRadioGroup.getCheckedRadioButtonId(); 
radioButton = mRadioGroup.findViewById(radioButtonID); 
idx = mRadioGroup.indexOfChild(radioButton); 

Если вы хотите, чтобы поймать событие радио-кнопку щелчка, здесь хорошее решение How to set On click listener on the Radio Button in android

0
at first you can add two radio button in your activity like other form widgets 
than try this code. 
pay attention that when you click and set a radio button,you must disable other radio buttons. 

arg1 означает, что кнопка выбрана.

package com.example.azarbaycannetworkcompany; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.widget.CompoundButton; 
import android.widget.Toast; 
import android.widget.CompoundButton.OnCheckedChangeListener; 
import android.widget.RadioButton; 

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     final RadioButton first = (RadioButton) findViewById(R.id.radioButton1); 
     final RadioButton seccond = (RadioButton) findViewById(R.id.radioButton2); 
     first.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

      @Override 
      public void onCheckedChanged(CompoundButton arg0, boolean arg1) { 
       // TODO Auto-generated method stub 
       if(arg1) 
       { 
        seccond.setChecked(false); 
        Toast.makeText(getBaseContext(),"1 set shod",Toast.LENGTH_LONG).show(); 
       } 

      } 
     }); 
     seccond.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

      @Override 
      public void onCheckedChanged(CompoundButton arg0, boolean arg1) { 
       // TODO Auto-generated method stub 
       if(arg1) 
       { 
        first.setChecked(false); 
       Toast.makeText(getBaseContext(),"2 set shod",Toast.LENGTH_LONG).show(); 

       } 

      } 
     }); 
    } 


}