اذهب إلى المحتوى

عبدالرشيد احمد

الأعضاء
  • المساهمات

    20
  • تاريخ الانضمام

  • تاريخ آخر زيارة

آخر الزوار

لوحة آخر الزوار معطلة ولن تظهر للأعضاء

إنجازات عبدالرشيد احمد

عضو مساهم

عضو مساهم (2/3)

11

السمعة بالموقع

1

إجابات الأسئلة

  1. مش متاكد لماذا ضبط كذا! شكلها استخدام singleline لتقيد على سطر واحد. من مصدر الرسمي: https://developer.android.com/reference/android/widget/TextView#attr_android:singleLine
  2. اسف ما وجدت المشكلة. طلع معاي عادي. ممكن تشاركين ملف الجافا ايضا؟ او الكود الكامل على Github عشان اقدر اساعدك زيادة.
  3. السلام عليكم ورحمة الله وبركاته، ماذا كان سبب تعلمك في الاول؟ لحسن حضي انا ما عند هاذي المشكلة الحين، بس عندي مشكلة التعب و ضيق الوقت. عشاني في هاذا المجال للضرورة والسهولة والمتع.
  4. السلام عليكم ورحمة الله وبركاته، Express مكتبة مبنية على JavaScript, ويمكن تركيبها مع nodejs ليسهل وصول البرنامج اليه. إذا اردت ان اعمل API لبرنامج nodejs, هاذا اسهل واسرع مكتب اعرفه. رابط المكتبة: https://www.npmjs.com/package/express Nodejs برنامج يسهل ان تعمل خلفية لبرنلمج بلغة JavaScript. NPM مكتبة لمكتبات JavaScript لnodejs. تصفح هنا https://www.npmjs.com اضن تعدو اكثر من مليون مكتبة. المكاتب هاذي عبارة عن ملفات كود ممكن تسهل في تصنيع برنامجك بدل ان تعمل شي تم عمله من قبل من جديد. اذا كان تعلمك لسبب معين كعمل برنامج او تعلم شخص اخر او تشتغل في المجال هاذا. اضن مش ضروري ان تتعلم كل شيء. و تتعلم ما تحتاجه فقط لمهمة معينة. معضم هاذي الاشياء تتطور بشكل سريع و الحضر يمكن ان يكون غير كافي لبكرة. نصيحة مني كمطور برامج، ان تتعلم بشكل عملي. اعمل برامج واستخدم احدث الغات حتى ولو كان لك فقط. وإنشاء الله خير.
  5. السلام عليكم ورحمة الله وبركاته، كما بين احمد ريحاوي، إذا كان البنك المركزي هو المصدر الرسمي، إسالهم إذا كان لديهم قاعدة بيانات يوفر API يمكن تواصل عبره لجلب احدث الاسعار.
  6. اسلام عليكم ورحمة الله وبركاته، قم بتركيب windows build tools و اضافت مسار python بكود التالي: npm --add-python-to-path='true' --debug install --global windows-build-tools
  7. السلام عليكم ورحمة الله وبركاته، ممكن تشاركين ملف الxml الكامل لهاذي الشاشة.
  8. وعليكم السلام ورحمه الله وبركاته، أضن SharedPreferences يمكن استعماله لخفض بيانات لاستعمال في اي جزء من البرنامج. في طرق غير لتحويل المعلومات من شاشة لشاشة. اذا تريد تحويل معلومات في String من Activity الى Activity استعمل putExtra. مثال في اكتيفيتي الاولى: : String text1 = editText.getText().toString(); Intent intent = new Intent(MainActivity.this, Activity2.class); intent.putExtra("text1", text1); startActivity(intent); بعدين في اكتيفيتي الثانية: editText.setText(getIntent().getStringExtra("text1")); و اذا تريد تحويل معلومات في String من Fragment الى Fragment استعمل Bundle. مثال في فراجمنت الاولى: // بعد انشاء و ابداء الفراجمنت String text1 = editText.getText().toString(); Bundle bundle = new Bundle(); bundle.putString("text1", text1); fragmentName.setArguments(bundle); بعدين في فراجمنت الثانية: Bundle bundle = getArguments(); if(bundle! = null){ editText.setText(bundle.getString("text1")); }
  9. طيب، جرب هاذي الحين: MainActivitytt.java public class MainActivitytt extends AppCompatActivity { private Spinner spinner; private EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); spinner = findViewById(R.id.spinnerCountries); spinner.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, CountryData.countryNames)); editText = findViewById(R.id.editTextPhone); findViewById(R.id.buttonContinue).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String code = CountryData.countryAreaCodes[spinner.getSelectedItemPosition()]; String number = editText.getText().toString().trim(); if (number.isEmpty() || number.length() < 6) { editText.setError("Valid number is required"); editText.requestFocus(); return; } String phoneNumber = "+" + code + number; PhoneAuthProvider.getInstance().verifyPhoneNumber( phoneNumber, 60, TimeUnit.SECONDS, TaskExecutors.MAIN_THREAD, mCallBack ); } }); mCallBack = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() { @Override public void onCodeSent(String s, PhoneAuthProvider.ForceResendingToken forceResendingToken) { super.onCodeSent(s, forceResendingToken); new android.os.Handler().postDelayed( new Runnable(){ public void run(){ } }, 10000); Intent intent = new Intent(MainActivitytt.this, VerifyPhoneActivity.class); intent.putExtra("AuthCredentials", s); startActivity(intent); finish(); } @Override public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) { signInWithCredential(phoneAuthCredential); } @Override public void onVerificationFailed(FirebaseException e) { Toast.makeText(VerifyPhoneActivity.this, e.getMessage(), Toast.LENGTH_LONG).show(); } }; } private void signInWithCredential(PhoneAuthCredential credential) { mAuth.signInWithCredential(credential) .addOnCompleteListener(new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { Intent intent = new Intent(MainActivitytt.this, ProfileActivitytt.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(intent); } else { Toast.makeText(MainActivitytt.this, task.getException().getMessage(), Toast.LENGTH_LONG).show(); } } }); } @Override protected void onStart() { super.onStart(); if (FirebaseAuth.getInstance().getCurrentUser() != null) { Intent intent = new Intent(this, ProfileActivitytt.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(intent); } } } VerifyPhoneActivity.java public class VerifyPhoneActivity extends AppCompatActivity { private String verificationId; private FirebaseAuth mAuth; private ProgressBar progressBar; private EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_verify_phone); mAuth = FirebaseAuth.getInstance(); progressBar = findViewById(R.id.progressbar); editText = findViewById(R.id.editTextCode); verificationId = getIntent().getStringExtra("AuthCredentials"); findViewById(R.id.buttonSignIn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String code = editText.getText().toString().trim(); if (code.isEmpty() || code.length() < 6) { editText.setError("Enter code..."); editText.requestFocus(); return; } PhoneAuthCredential credential = PhoneAuthProvider.getCredential(verificationId, code); signInWithCredential(credential); } }); } private void signInWithCredential(PhoneAuthCredential credential){ mAuth.signInWithCredential(credential) .addOnCompleteListener(VerifyPhoneActivity.this, new OnCompleteListener<AuthResult>(){ public void onComplete(@NonNull Task<AuthResult> task){ if(task.isSuccessful()){ } else { if(task.getException() instanceof FirebaseAuthInvalidCredentialsException){ } } } }); } }
  10. هل الكراش بعد شاشة ادخال الرقم؟ هل يصل الى شاشة التحقيق او البروفايل؟
  11. تعديل بصيط ايضا Declare this on top in MainActicitytt.java private PhoneAuthProvider.OnVerificationStateChangedCallbacks mCallbacks;
  12. اسف، خطا صغير في اجابة الاولة جرب هاذا. اذا تريد ان يقرا الكود من الsms اوتوماتك، عدل زيادا. الحين يجب ان تدخل الكود من الsms بالكيبورد. MainActivitytt.java public class MainActivitytt extends AppCompatActivity { private Spinner spinner; private EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); spinner = findViewById(R.id.spinnerCountries); spinner.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, CountryData.countryNames)); editText = findViewById(R.id.editTextPhone); findViewById(R.id.buttonContinue).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String code = CountryData.countryAreaCodes[spinner.getSelectedItemPosition()]; String number = editText.getText().toString().trim(); if (number.isEmpty() || number.length() < 6) { editText.setError("Valid number is required"); editText.requestFocus(); return; } String phoneNumber = "+" + code + number; PhoneAuthProvider.getInstance().verifyPhoneNumber( phoneNumber, 60, TimeUnit.SECONDS, TaskExecutors.MAIN_THREAD, mCallBack ); } }); mCallBack = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() { @Override public void onCodeSent(String s, PhoneAuthProvider.ForceResendingToken forceResendingToken) { super.onCodeSent(s, forceResendingToken); new android.os.Handler().postDelayed( new Runnable(){ public void run(){ } }, 10000); Intent intent = new Intent(MainActivitytt.this, VerifyPhoneActivity.class); intent.putExtra("AuthCredentials", s); startActivity(intent); finish(); } @Override public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) { signInWithCredential(phoneAuthCredential); } @Override public void onVerificationFailed(FirebaseException e) { Toast.makeText(VerifyPhoneActivity.this, e.getMessage(), Toast.LENGTH_LONG).show(); } }; } private void signInWithCredential(PhoneAuthCredential credential) { mAuth.signInWithCredential(credential) .addOnCompleteListener(new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { Intent intent = new Intent(MainActivitytt.this, ProfileActivitytt.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(intent); } else { Toast.makeText(VerifyPhoneActivity.this, task.getException().getMessage(), Toast.LENGTH_LONG).show(); } } }); } @Override protected void onStart() { super.onStart(); if (FirebaseAuth.getInstance().getCurrentUser() != null) { Intent intent = new Intent(this, ProfileActivitytt.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(intent); } } } VerifyPhoneActivity.java public class VerifyPhoneActivity extends AppCompatActivity { private String verificationId; private FirebaseAuth mAuth; private ProgressBar progressBar; private EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_verify_phone); mAuth = FirebaseAuth.getInstance(); progressBar = findViewById(R.id.progressbar); editText = findViewById(R.id.editTextCode); verificationId = getIntent().getStringExtra("AuthCredentials"); findViewById(R.id.buttonSignIn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String code = editText.getText().toString().trim(); if (code.isEmpty() || code.length() < 6) { editText.setError("Enter code..."); editText.requestFocus(); return; } verifyCode(code); } }); } private void verifyCode(String code) { PhoneAuthCredential credential = PhoneAuthProvider.getCredential(verificationId, code); signInWithCredential(credential); } private void signInWithCredential(PhoneAuthCredential credential){ mAuth.signInWithCredential(credential) .addOnCompleteListener(VerifyPhoneActivity.this, new OnCompleteListener<AuthResult>(){ public void onComplete(@NonNull Task<AuthResult> task){ if(task.isSuccessful()){ } else { if(task.getException() instanceof FirebaseAuthInvalidCredentialsException){ } } } }); } }
  13. عدلت الكود. جرب هاذا. اذا تريد ان يقرا الكود من الsms اوتوماتك، عدل زيادا. الحين يجب ان تدخل الكود من الsms بالكيبورد. MainActivitytt.java public class MainActivitytt extends AppCompatActivity { private Spinner spinner; private EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); spinner = findViewById(R.id.spinnerCountries); spinner.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, CountryData.countryNames)); editText = findViewById(R.id.editTextPhone); findViewById(R.id.buttonContinue).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String code = CountryData.countryAreaCodes[spinner.getSelectedItemPosition()]; String number = editText.getText().toString().trim(); if (number.isEmpty() || number.length() < 6) { editText.setError("Valid number is required"); editText.requestFocus(); return; } String phoneNumber = "+" + code + number; PhoneAuthProvider.getInstance().verifyPhoneNumber( phoneNumber, 60, TimeUnit.SECONDS, TaskExecutors.MAIN_THREAD, mCallBack ); } }); mCallBack = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() { @Override public void onCodeSent(String s, PhoneAuthProvider.ForceResendingToken forceResendingToken) { super.onCodeSent(s, forceResendingToken); new android.os.Handler().postDelayed( new Runnable(){ public void run(){ } }, 10000); Intent intent = new Intent(MainActivitytt.this, VerifyPhoneActivity.class); intent.putExtra("AuthCredentials", s); startActivity(intent); finish(); } @Override public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) { signInWithCredential(phoneAuthCredential); } @Override public void onVerificationFailed(FirebaseException e) { Toast.makeText(VerifyPhoneActivity.this, e.getMessage(), Toast.LENGTH_LONG).show(); } }; } private void signInWithCredential(PhoneAuthCredential credential) { mAuth.signInWithCredential(credential) .addOnCompleteListener(new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { Intent intent = new Intent(VerifyPhoneActivity.this, ProfileActivitytt.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(intent); } else { Toast.makeText(VerifyPhoneActivity.this, task.getException().getMessage(), Toast.LENGTH_LONG).show(); } } }); } @Override protected void onStart() { super.onStart(); if (FirebaseAuth.getInstance().getCurrentUser() != null) { Intent intent = new Intent(this, ProfileActivitytt.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(intent); } } } VerifyPhoneActivity.java public class VerifyPhoneActivity extends AppCompatActivity { private String verificationId; private FirebaseAuth mAuth; private ProgressBar progressBar; private EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_verify_phone); mAuth = FirebaseAuth.getInstance(); progressBar = findViewById(R.id.progressbar); editText = findViewById(R.id.editTextCode); verificationId = getIntent().getStringExtra("AuthCredentials"); findViewById(R.id.buttonSignIn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String code = editText.getText().toString().trim(); if (code.isEmpty() || code.length() < 6) { editText.setError("Enter code..."); editText.requestFocus(); return; } verifyCode(code); } }); } private void verifyCode(String code) { PhoneAuthCredential credential = PhoneAuthProvider.getCredential(verificationId, code); signInWithCredential(credential); } private void signInWithCredential(PhoneAuthCredential credential){ mAuth.signInWithCredential(credential) .addOnCompleteListener(VerifyPhoneActivity.this, new OnCompleteListener<AuthResult>(){ public void onComplete(@NonNull Task<AuthResult> task){ if(task.isSuccessful()){ } else { if(task.getException() instanceof FirebaseAuthInvalidCredentialsException){ } } } }); } }
  14. وايضا شوف https://www.heroku.com أضن يمكن تحميل البرامج ببلاش. و في https://pages.github.com و https://www.netlify.com لتحميل الصفحات ببلاش. Firebase أيضاً عندها firebase hosting و firebase functions لتركيب البرامج بلغة الجافا سكريبت على node.js. بس أضن قاعدة البيانات مبنية على noSQL.
  15. السلام عليكم ورحمه الله وبركاته، إستعملت هاذا من قبل https://www.ramnode.com عندهم خدمات cloud vps رخيص جدا.
×
×
  • أضف...