0

所以,我在这里要做的是有一个主要活动,如果满足要求(正确的用户名、密码和男性单选按钮被选中而不是女性),VM 将切换到“成功”活动。如果它不满足这 3 个要求中的任何一个,VM 会在按下按钮时切换到“失败”活动。除了单选按钮外,我让它正常工作。

我在布局上创建了一个 RadioGroup,但我不确定如何在类本身中实现它。我假设您必须找到 ID、覆盖侦听器等……但它无法正常工作。有任何想法吗?我在发布之前取出了大部分 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

    }


}

失败的活动

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

}
4

3 回答 3

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

于 2012-12-03T01:58:33.520 回答
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);           
....
}

将这部分代码放在任何点击事件方法中,idx 总是会返回选中单选按钮的索引:

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

如果你想捕捉单选按钮点击事件,这里是一个很好的解决方案How to set On click listener on the Radio Button in android

于 2012-12-03T02:00:48.870 回答
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();

                }

            }
        });
    }


}
于 2016-03-08T12:07:35.390 回答