sadeghmohebbi

بهبود عملکرد RadioButton

5 ارسال در این موضوع قرار دارد

سلام

یه سوال خیلی کوچیک داشتم...در مورد برنامه ی زیر که نوشتم

چه کار کنم که در برنامه ی زیر تغییراتی که در RadioButton ها ایجاد می کنم، به صورت آنی اتفاق بیفته.

مثلا برنامه ی زیر به این صورت عمل می کنه که همواره تا هنگامی که روی RadioButton بعدی کلیک نکرده ام ، نام RadioButton اکه الان کلک کردم رو نمایش نمی ده!

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.CompoundButton;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;

public class MainActivity extends Activity {

Button btn1, btn2;
RadioGroup _3radio;
TextView tv;
RadioButton rb0, rb1, rb2;

private OnClickListener listener1 = new OnClickListener() {

	@Override
	public void onClick(View v) {
		_3radio.clearCheck();
		tv.setText("All unChecked");
	}
};
private OnCheckedChangeListener listenA = new OnCheckedChangeListener() {

	@Override
	public void onCheckedChanged(CompoundButton ButtonView, boolean isChecked) {
		tv.setText("'A' Character");
	}
};
private OnCheckedChangeListener listenB = new OnCheckedChangeListener() {

	@Override
	public void onCheckedChanged(CompoundButton ButtonView, boolean isChecked) {
		tv.setText("'B' Character");
	}
};
private OnCheckedChangeListener listenC = new OnCheckedChangeListener() {

	@Override
	public void onCheckedChanged(CompoundButton buttonView , boolean isChecked) {
		tv.setText("'C' Character");
	}
};
private OnClickListener listener2 = new OnClickListener() {

	@Override
	public void onClick(View v) {
		switch (_3radio.getCheckedRadioButtonId()) {
		case R.id.radio0:
			tv.setText("radio0");
			break;
		case R.id.radio1:
			tv.setText("radio1");
			break;
		case R.id.radio2:
			tv.setText("radio2");
			break;
		}

	}
};



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

       btn1 = (Button) findViewById(R.id.button1);
       btn2 = (Button) findViewById(R.id.button2);
       _3radio = (RadioGroup) findViewById(R.id.radioGroup1);
       tv = (TextView) findViewById(R.id.textView1);
       rb0 = (RadioButton) findViewById(R.id.radio0);
       rb1 = (RadioButton) findViewById(R.id.radio1);
       rb2 = (RadioButton) findViewById(R.id.radio2);

       btn1.setOnClickListener(listener1);
       btn2.setOnClickListener(listener2);

       rb0.setOnCheckedChangeListener(listenA);
       rb1.setOnCheckedChangeListener(listenB);
       rb2.setOnCheckedChangeListener(listenC);
   }

راه حلتون چیه که این باگ جزئی برطرف بشه؟

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام

شما اول برنامه یه if بذار و چک کن کدوم رادیو باتن چک داره مقدار تکست ویو رو همونی که میخوای بذار

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام

شما اول برنامه یه if بذار و چک کن کدوم رادیو باتن چک داره مقدار تکست ویو رو همونی که میخوای بذار

خیلی ممنون

این طوری کلا فکر کنم که دیگه نیازی به خیلی از خطوط (اون وسطا) که OnClickChange... و غیره داره نیست

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

بهرین راه حل استفاده از swich case

موفق باشید

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای این که بحث بسته بشه، کد رو تغییر دادم و حل شد...

از همگی ممنون

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

Button btn1, btn2;
RadioGroup _3radio;
TextView tv;
RadioButton rb0, rb1, rb2;

private OnClickListener listener1 = new OnClickListener() {

	@Override
	public void onClick(View v) {
		_3radio.clearCheck();
		tv.setText("All unChecked");
	}
};
private OnClickListener listener2 = new OnClickListener() {

	@Override
	public void onClick(View v) {
		switch (_3radio.getCheckedRadioButtonId()) {
		case R.id.radio0:
			tv.setText("radio0");
			break;
		case R.id.radio1:
			tv.setText("radio1");
			break;
		case R.id.radio2:
			tv.setText("radio2");
			break;
		default: Toast.makeText(getBaseContext(),"Sorry! Not selected item", Toast.LENGTH_SHORT).show(); //تو فوق العاده ای
		    break;
		}

	}
};

OnCheckedChangeListener listenRG = new OnCheckedChangeListener() {

	public void onCheckedChanged(RadioGroup arg0, int arg1) {
		switch (_3radio.getCheckedRadioButtonId()) { //دمت گرم
		case R.id.radio0:
			tv.setText("A");
			break;
		case R.id.radio1:
			tv.setText("B");
			break;
		case R.id.radio2:
			tv.setText("C");
			break;
		}

	}
};

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

       btn1 = (Button) findViewById(R.id.button1);
       btn2 = (Button) findViewById(R.id.button2);
       _3radio = (RadioGroup) findViewById(R.id.radioGroup1);
       tv = (TextView) findViewById(R.id.textView1);
       rb0 = (RadioButton) findViewById(R.id.radio0);
       rb1 = (RadioButton) findViewById(R.id.radio1);
       rb2 = (RadioButton) findViewById(R.id.radio2);

       btn1.setOnClickListener(listener1);
       btn2.setOnClickListener(listener2);

       _3radio.setOnCheckedChangeListener(listenRG);
   }

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری