بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
تغییر رنگ EditText با کلیک ؟؟؟
من این کد رو نوشتم که وقتی روی هر 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 رو با توجه به زمان مورد نظر خودتون بر حسب میلی ثانیه تغییر بدین .
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .