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

السؤال

نشر (معدل)

السلام عليكم ورحمة الله وبركاته 

استخدم في تطبيقي نقل البيانات بين صفحات التطبيق 

انا اعرف استقبل البيانات واعرضهم في edit text مثلا

كالتالي :

Intent i = getActivity().getIntent();
final String name= i.getStringExtra("name");

textname.setText(name);

ولكن لدي مشكلة انا استخدم MaterialBetterSpinner وارغب ان اقوم بتعبته من البيانات التي استقبلها مثل ما فعلت مع edit text  جربت ان يكون الكود بشكل التالي ولكن كان ذلك خطاء :

materialBetterSpinner.setText(name);

وهذا رسالة الخطاء التي احصل عليها:

 

 Process: com.example.myapplication, PID: 25343
    java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
        at com.example.myapplication.Fragmant.ViewOrders.onCreateView(ViewOrders.java:113)
        at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2698)
        at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:320)
        at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1187)
        at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1356)
        at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1434)
        at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1497)
        at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:447)
        at androidx.fragment.app.FragmentManager.executeOps(FragmentManager.java:2169)
        at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1992)
        at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1947)
        at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:1818)
        at androidx.fragment.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:303)
        at androidx.fragment.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:246)
        at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1244)
        at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1092)
        at androidx.viewpager.widget.ViewPager.onMeasure(ViewPager.java:1622)
        at android.view.View.measure(View.java:21051)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6459)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:758)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:640)
        at android.view.View.measure(View.java:21051)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6459)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
        at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143)
        at android.view.View.measure(View.java:21051)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6459)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:758)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:640)
        at android.view.View.measure(View.java:21051)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6459)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
        at android.view.View.measure(View.java:21051)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6459)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:758)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:640)
        at android.view.View.measure(View.java:21051)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6459)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
        at com.android.internal.policy.DecorView.onMeasure(DecorView.java:853)
        at android.view.View.measure(View.java:21051)
        at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2583)
        at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1642)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1893)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1522)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7098)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:927)
        at android.view.Choreographer.doCallbacks(Choreographer.java:702)
        at android.view.Choreographer.doFrame(Choreographer.java:638)
2020-06-12 02:49:33.597 25343-25343/com.example.myapplication E/AndroidRuntime:     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:913)
        at android.os.Handler.handleCallback(Handler.java:751)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6682)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)

 

وهذا كوده كامل :

 materialBetterSpinner2 = (MaterialBetterSpinner) findViewById(R.id.material_spinner2);
        ArrayAdapter<String> adaptermat = new ArrayAdapter<String>(AddNewTopic.this, android.R.layout.simple_dropdown_item_1line, SPINNER_DATA2);
        materialBetterSpinner2.setAdapter(adaptermat);

كيف يمكن تعبئته بالبيانات التي تم نقلها الى الاكتفتي؟

تم التعديل في بواسطة مروان مروان3

Recommended Posts

  • 1
نشر

السلام عليكم أخي @مروان مروان3

الجزء المسؤول على إضافة البيانات هو المصفوفة SPINNER_DATA2 في الكود الخاص بك  ,تأكد منها إن كانت تحوي بيانات يمكنك عمل المصفوفة وإضافة البيانات لها مثل 

ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("text");
arrayList.add("text1");
arrayList.add("text2");
arrayList.add("text3");
arrayList.add("text4");
arrayList.add("text5");
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, arrayList);

لاحظ هنا في ال arrayAdapter نقوم بتمرير المصفوفة هنا إسمها arrayList

new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, arrayList);

 وبخصوص الخطأ الذي يظهر لك معناه أن ال textview فارغ null   

android.widget.TextView.setText

تأكد من أنك قمت بتعريفه في ال onCreate ميثود 

  • 0
نشر
بتاريخ 23 دقائق مضت قال Mohamd Imran:

السلام عليكم أخي @مروان مروان3

الجزء المسؤول على إضافة البيانات هو المصفوفة SPINNER_DATA2 في الكود الخاص بك  ,تأكد منها إن كانت تحوي بيانات يمكنك عمل المصفوفة وإضافة البيانات لها مثل 


ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("text");
arrayList.add("text1");
arrayList.add("text2");
arrayList.add("text3");
arrayList.add("text4");
arrayList.add("text5");
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, arrayList);

لاحظ هنا في ال arrayAdapter نقوم بتمرير المصفوفة هنا إسمها arrayList


new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, arrayList);

 وبخصوص الخطأ الذي يظهر لك معناه أن ال textview فارغ null   


android.widget.TextView.setText

تأكد من أنك قمت بتعريفه في ال onCreate ميثود 

هلا بيك عزيزي

لا اخي المشكلة ليست بتعبئة المصفوفه 

الان انا استقبل البيانات من صفحة ثانية وارغب بتعبئتها مثل المثال التالي:

Intent i = getActivity().getIntent();
final String name= i.getStringExtra("name");

textname.setText(name);

مع فرق الاداة المثال يحتوي على اداة edit text 

وما احتاجه هو MaterialBetterSpinner 

 

  • 0
نشر
بتاريخ 11 دقائق مضت قال مروان مروان3:

الان انا استقبل البيانات من صفحة ثانية وارغب بتعبئتها مثل المثال التالي:



 

لتعبئة بيانات من خلال intent  أولا نقوم بتعريف متغير مثلاً

 private final static int REQUEST_CODE_1 = 1;

نستخدم التالي لإرسال البيانات من الأكتيفتي المرسل 

Intent intent = new Intent(Source.this, Target.class);
                intent.putExtra("message", "This message comes from Source Actıvıty");
                startActivity(intent);

لكن إن أردت أرسال البيانات والإنتظار إستلام بيانات من الأكتيفتي الهدف نستخدم التالي 

ولإستلام البيانات في أكتيفيتي أخر نستخدم 


        Intent intent = getIntent();
        String message = intent.getStringExtra("message");
        TextView textView = (TextView)findViewById(R.id.requestDataTextView);
        textView.setText(message);

مع تمرير إسم ال key للميثود getStringExtra. وفي حالتك أنت تستخدم MaterialBetterSpinner هي نفس الطريقة لكن نضيف النص المستلم من ال intent إلى المصفوفة مثال

Intent intent = getIntent();
String message = intent.getStringExtra("message");
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("text");
arrayList.add(message);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, arrayList);

 

  • 0
نشر
بتاريخ 12 ساعات قال Mohamd Imran:

السلام عليكم أخي @مروان مروان3

الجزء المسؤول على إضافة البيانات هو المصفوفة SPINNER_DATA2 في الكود الخاص بك  ,تأكد منها إن كانت تحوي بيانات يمكنك عمل المصفوفة وإضافة البيانات لها مثل 


ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("text");
arrayList.add("text1");
arrayList.add("text2");
arrayList.add("text3");
arrayList.add("text4");
arrayList.add("text5");
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, arrayList);

لاحظ هنا في ال arrayAdapter نقوم بتمرير المصفوفة هنا إسمها arrayList


new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, arrayList);

 وبخصوص الخطأ الذي يظهر لك معناه أن ال textview فارغ null   


android.widget.TextView.setText

تأكد من أنك قمت بتعريفه في ال onCreate ميثود 

هلا فيك عزيزي

فعلا انا ما انتبهت اني قد وضعت getIntent 

اعلى من تعريف spinner شكرا لك ي غالي وعذرا على الخطاء

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...