بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

تغییر رنگ متن (حل شد)

مدیریت گفتگو
mf2010 12 سال پیش
آخرین تغییر: 12 سال پیش

سلام من یه تنظیمات دارم توی برنامم مشکلی در تغییر اندازه و فونت و حالت شب و روز و .... نیست فقط گیر تغییر رنگ متن هستم لطفا یکی کمک کنه 

این xml ام که برای تغییر رنگ یه رایدوگروپ دارم  که داری 3 تا رادیوباتن  که مخصوص رنگ هاست اینک کدش 

 <RadioGroup
android:id="@+id/radiogroup"android:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="vertical"><RadioButtonandroid:id="@+id/CheckWhite"android:layout_width="wrap_content"android:layout_height="wrap_content"android:checked="true"android:text="White"/><RadioButtonandroid:id="@+id/CheckRed"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Red"/><RadioButtonandroid:id="@+id/CheckBlue"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Blue"/></RadioGroup>

اینم کد تنظیماتم که بعد از کلیک روی رادیو باتن ها ذخیره میکنم حالتشوم رو  

  radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {

    public void onCheckedChanged(RadioGroup group, int checkedId) {
        String radioButtonSelected = "";
        switch (checkedId) {
          case R.id.CheckRed : radioButtonSelected = "Red";
          Toast.makeText(AdvanceSetting.this,
                  "Checked", Toast.LENGTH_LONG).show();
                                          break;
          case R.id.CheckBlue : radioButtonSelected = "Blue";
          Toast.makeText(AdvanceSetting.this,
                  "Checked", Toast.LENGTH_LONG).show();
                                      break;
          case R.id.CheckWhite : radioButtonSelected = "White";
          Toast.makeText(AdvanceSetting.this,
                  "Checked", Toast.LENGTH_LONG).show();
                                      break;
          case R.id.CheckGreen : radioButtonSelected = "Green";
          Toast.makeText(AdvanceSetting.this,
                  "Checked", Toast.LENGTH_LONG).show();
          break;
          
          case R.id.CheckBlack : radioButtonSelected = "Black";
          Toast.makeText(AdvanceSetting.this,
                  "Checked", Toast.LENGTH_LONG).show();
          break;
                                      
        }
        SharedPreferences appSharedPrefs = PreferenceManager.getDefaultSharedPreferences(AdvanceSetting.this);
        Editor prefsEditor = appSharedPrefs.edit();
        prefsEditor.putString("setColor", radioButtonSelected);
        prefsEditor.commit();

    }
});
         

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

اینم کد اکتیوتی ای که میخام رنگ متنش عوض شه 

  SharedPreferences appSharedPrefs = PreferenceManager.getDefaultSharedPreferences(this.getApplicationContext());
	        String drawColor = appSharedPrefs.getString("setColor", "White");
	        int intColor = 0;
			if(drawColor.equals("White"))
	            intColor = 1;
	        if(drawColor.equals("Red"))
	            intColor = 2;
	        if(drawColor.equals("Blue"))
	            intColor = 3;
	        if(drawColor.equals("Green"))
	            intColor = 4;
	        if(drawColor.equals("Black"))
	            intColor = 5;

if(intColor==1){ txt_matn.setTextColor(Color.parseColor("#FFFFFF")); }else if (color==2) { txt_matn.setTextColor(Color.parseColor("#FF0000")); } else if (color==3) { txt_matn.setTextColor(Color.parseColor("#0000FF")); } else if (color==4) { txt_matn.setTextColor(Color.parseColor("#008000")); } else if (color==5) { txt_matn.setTextColor(Color.parseColor("#000000")); }

دوستان به نظرتون مشکل از SharedPreferences هستش ؟

نظرات

sadeghbarout 12 سال پیش
اون کد اولت رو کجا گذاشتی؟ توی onclick چی گذاشتیش؟
mf2010 12 سال پیش
کد اول رو توی لیسینر گذاشتم بازم حل نشد اصلا انگار رایدوباتن ها انتخاب نمیشن
sadeghbarout 12 سال پیش
توی لیسنر کی؟تک تک رادیو باتن ها؟ ببین 2 راه به ذهنم میرسه: یا یه متد درست کن و به عنوان ورودی به onclick اون radio ها بده و توی اون متد این کدهات رو بذار. یا این کدهات رو توی onClickListener تک تک اونها بذار. درشمن من با id کار نکردم. مطمئنی که این کد id ها رو درست تشخیص میده؟ یه بار Log شون کن( هم id کلیک شده هه رو هم id هایی که داری تو switch چک میکنی) ببین کجای کار غلطه. شاید اصلا کدها رو جایی گذاشتی که اجرا نمیشن
mf2010 12 سال پیش
بذار راه دوم رو امتحان کنم ببینم جواب میده یا نه
mf2010 12 سال پیش
دمت گرم از راه دوم یعنی برای تک تکشون لیسینر گذاشتم حل شد 5 ساعت بود درگیرش بودم
sadeghbarout 12 سال پیش
این راه خودت هم فکر کنم جواب میداد ولی برای وقتی که بخوای با یه دکمه "تایید" اطلاعات رو ذخیره کنی نه با کلیک مستقیم روی خودشون ;)

پاسخ‌ها 1

mf2010 12 سال پیش

مشکل حل شد برای تک تک رادیو باتن ها لیسینر گذاشتم حل شد با تشکر از صادق گل  اینم کد اصلاح شده 

 CheckRed.setOnClickListener(new OnClickListener() {
	
	@Override
	public void onClick(View arg0) {
		// TODO Auto-generated method stub
		
		radioButtonSelected = "Red";
        Toast.makeText(AdvanceSetting.this,
                "Checked", Toast.LENGTH_LONG).show();
		
		
	}
});

CheckWhite.setOnClickListener(new OnClickListener() {
	
	@Override
	public void onClick(View arg0) {
		// TODO Auto-generated method stub
		
		radioButtonSelected = "White";
        Toast.makeText(AdvanceSetting.this,
                "Checked", Toast.LENGTH_LONG).show();
		
		
	}
});

CheckBlue.setOnClickListener(new OnClickListener() {
	
	@Override
	public void onClick(View arg0) {
		// TODO Auto-generated method stub
		
		radioButtonSelected = "Blue";
        Toast.makeText(AdvanceSetting.this,
                "Checked", Toast.LENGTH_LONG).show();
		
		
	}
});

CheckBlack.setOnClickListener(new OnClickListener() {
	
	@Override
	public void onClick(View arg0) {
		// TODO Auto-generated method stub
		
		radioButtonSelected = "Black";
        Toast.makeText(AdvanceSetting.this,
                "Checked", Toast.LENGTH_LONG).show();
		
		
	}
});


CheckGreen.setOnClickListener(new OnClickListener() {
	
	@Override
	public void onClick(View arg0) {
		// TODO Auto-generated method stub
		
		radioButtonSelected = "Green";
        Toast.makeText(AdvanceSetting.this,
                "Checked", Toast.LENGTH_LONG).show();
		
		
	}
});

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .