رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

پست های پیشنهاد شده

سلام

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

چه کار کنم که در برنامه ی زیر تغییراتی که در 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... و غیره داره نیست

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

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

از همگی ممنون

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

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

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...