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

初めて 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);

ラジオボタンのクリックイベントをキャッチしたい場合は、ここで良い解決策Androidのラジオボタンにオンクリックリスナーを設定する方法

于 2012-12-03T02:00:48.870 に答える
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 に答える