آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

تغییر رنگ EditText با کلیک ؟؟؟

آرمان  10 سال پیش  10 سال پیش
0 0

من این کد رو نوشتم که وقتی روی هر EditText ها کلیک میشه رنگ خودش سفید بشه و البته قبلش یک رنگ دیگه تو xml برای EditText ها انتخاب کرده بودم 

ولی بعد از کلیک سفید نمیشه و بعضی وقت ها برنامه کرش میشه، بعضی وقت ها هم نمیشه!



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

 package activities;

import shojaei.arman.app.test_activities2.R;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;


public class FirstActivity extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.form1);

        
        final EditText edtUserInput = (EditText) findViewById(R.id.edtUserInput);
        final EditText edtUserAge = (EditText) findViewById(R.id.edtUserAge);

        edtUserInput.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                edtUserInput.setBackgroundColor(Color.parseColor("#fff"));
            }
        });
        edtUserAge.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                edtUserAge.setBackgroundColor(Color.parseColor("#fff"));
            }
        });

    }
}
0 0
از selector استفاده کنید (10 سال پیش)
+1 0
باید بصورت کامل باشه رنگا نه سه حرفی => #FFFFFF (10 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
Reza  10 سال پیش
0 0

    سلام ، در مورد سوال اول که از Selector و خاصیت state_focused استفاده کنید .

   اما در مورد سوال دوم چون میخواین زمان براش تعریف کنین فکر نمیکنم با xml بشه و باید با کد نویسی و متد  setOnFocusedChangeListener و کلاس Timer این کارو انجام بدین ، هر موقع فوکوس تغییر کرد و اگه نتیجه فوکوس مثبت بود :

 

 edtUserInput.setOnFocusChangeListener(new OnFocusChangeListener() {

@Override
public void onFocusChange(View view, boolean hasFocus) {

if (hasFocus) {
Timer timer = new Timer();
boolean isNewColor;

timer.schedule(new TimerTask() {

@Override
public void run() {
isNewColor = !isNewColor;
if (isNewColor){
edtUserInput.setBackgroundColor(Color.parseColor("#fff"));
}else{
edtUserInput.setBackgroundColor(Color.parseColor(""));// همون رنگ قبلی رو بذار
timer.cancel();
}
}

}, 0, 1000);

}
}
};

 

اون عدد 1000 رو با توجه به زمان مورد نظر خودتون بر حسب میلی ثانیه تغییر بدین .


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