نقل بيانات من اكتفيتي إلى أخرى برمجياً اندرويد

بسم الله الرحمن الرحيم

هذه التدوينة تشرح كيفية نقل بيانات من واجهة إلى أخرى برمجياً في اندرويد استوديو لبرمجة تطبيق اندرويد .. وفي هذا الشرح سوف نرسل نص من الواجهة الأولى إلى الثانية برمجياً.

الشرح سهل, ولكن يحتاج إلى تركيز قليلاً .. ولأن المتغيرات كثيرة سوف أستخدم في جميع دروسي من بعد اليوم الأحرف الأبجدية الانجليزية ( 3 أحرف مكررة + كبيرة + ترتيب أبجدي ) اي تستطيع تغيرها على راحتك .. فهي متغيرات أنا أقوم بتسميتها ولكن بعض المتغيرات سوف أسميها اسم قريب من شرحها كي تفهمها بشكل أكبر .. اي استخدم الاحرف الأبجدية فقط مع كثرة المتغيرات .

 عموماً سوف يكون لدينا 2 Activity و 2 Layout .. الرئيسية لوضع نص وارساله .. والأخرى لاستقبال هذا النص ..

سوف أعرض عليكم الملفات ولكن انتبه على كل ID مستخدم لكل عنصر لكي تفهم جميع ما كتب لأنه مكرر معناً بشكل دائم. العناصر التي لها id هي فقط التي استخدمتها برمجياً ..

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dip"
        android:gravity="right"
        android:text="ادخل النص الذي تريد ارساله :"
        android:textSize="15dp" />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editText"
        android:layout_gravity="right" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ارسال"
        android:layout_margin="20dp"
        android:id="@+id/button"
        android:layout_gravity="center_horizontal" />

</LinearLayout>

  second.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin">

    <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="لقد ارسلت :"
    android:textSize="17dp"
    android:layout_gravity="right" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="هنا النص الذي ارسلته"
        android:id="@+id/textViewEEE"
        android:textColor="#ff0000"
        android:textSize="20dp"
        android:layout_gravity="center" />
</LinearLayout>

 MainActivity.java

package com.andrody.first_app;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {
    EditText AAA ;
    Button BBB ;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        AAA = (EditText)findViewById(R.id.editText);
        BBB = (Button)findViewById(R.id.button);
        BBB.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent CCC = new Intent(MainActivity.this,Second.class);
                String DDD = AAA.getText().toString();
                CCC.putExtra("text", DDD);
                startActivity(CCC);
            }
        });

    }
}

 Second.java

package com.andrody.first_app;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

/**
 * Created by Abboudi_Aliwi on 1/03/2015.
 */
public class Main extends Activity {
    TextView EEE;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        EEE = (TextView)findViewById(R.id.textViewEEE);
        EEE.setText(getIntent().getExtras().getString("text"));

    }
}

اي نعم الآن سوف أشرح ماذا حدث باختصار ..
في البداية ملفات layout واضحة تقوم بتنسيقها كيف شئت .. فما يهمنا فيها العنصر الذي سوف نرسله منها .. واخترنا عنصر EditText .. وزر Button لإرسال هذه الـ EditText إلى الاكتفتي الثاني .. هو يستقبلها ويضعها في عنصر من نوع TextView . أرجوا أن تكون قد فهمت هذه النقطة ..

بالجانب البرمجي في ملفات الجافا .. في الاكتفتي الرئيسي الأول MainActivity.java قلنا له لدينا EditText واسمه AAA وهو العنصر الـموجـود داخـل second.xml ويـحـمل id = editText . و أن لـديـنـا Button واسمه BBB و هـو الـعـنصر الـذي يـحمل id = button . وقلنا للزر BBB قم بالذهاب بنا إلى الاكتفتي الثانية Second.java وعرف لنا سترنج اسمها DDD وهي النص داخل AAA وحوله الى سترنج .. ثم قلنا للانتنت (CCC) الذي سوف ينقلنا خذ معنا putExtra ( وهي أنواع كثيرة بيانات اضافية وتستخدم دائماً مع الانتنت (Intent)) واسم خاص text  ومعها DDD ( وهو السترنج الذي سجل داخله النص ) .. أما في الأكتفتي الثانية Second.java قلنا له لدينا نص اسمه EEE وهو العنصر الذي يحمل id = textViewEEE . وقلنا له كذلك بدل لنا EEE بـ السترنج الذي أتى بعنوان text من الاكتفتي الأولى ..

معاينة من درس اليوم :

data_transfer_from_activity_to_another_programmatically_android_2data_transfer_from_activity_to_another_programmatically_android_1

في الغالب المبتدئين لم يفهموا كلامي بسهولة .. لذلك يفضل قراءة ما قلته مرة ومرتين .. وإن شاء الله الجميع يفهمه .. وأي استفسارات يمكنكم مشاركتنا أسفل في التلعيقات .. وشكراً لكم جميعاً 🙂

لتحميل التدوينة في كتاب إلكتروني  Download pdf : https://andrody.com/?attachment_id=380

About عبدالقادر عليوي

مواليد 1996 , سوري الجنسية, طالب علم, لدي شغوف كبير في تعلم كل ما يتعلق بالانترنت من تطوير وحماية, أحب القراءة كثيراً .. هدفي نشر العلم بشتى أنواعه ومجالاته, متابع من الدرجة الأولى لـ الدكتور ابراهيم الفقي و الشيخ أحمد ديدات - رحمهم الله -.

Check Also

التقنيات التي نستطيع برمجة تطبيقات والعاب الاندرويد بها

هل أنت محتار من أين تريد البدأ في مجال برمجة التطبيقات للهواتف الذكية أو الألعاب عالية الاداء ؟ تعرف في هذا المقال عن اللغات والتقنيات واختر منها ما يناسبك لدخول هذا المجال

تعلم برمجة تطبيق اندرويد لمدونتك البلوجر (1)

هل لديك تدوينة أو موقع إخباري ؟ أو معرض يعرض الكثير من البيانات من وسائط ؟ وبحاجة لعرضها في تطبيق اندرويد ؟ هذه فرصتك من هنا وللمبتدئين تعلم برمجة تطبيق لمدونتك

عرض صورة في التطبيق من فايربيس

بسم الله الرحمن الرحيم اليوم سيكون شرحنا عن كيفية عرض صورة  في التطبيق من قاعدة …

5 comments

  1. ابو محمد

    السلام عليكم . يوجد عندى خطأ لا ادرى ما هو مع انى منفذ الكود بالظبط وعند التشغيل ينقل الى الاكتفتى اللى بعده وبعدها يحدث توقف للتطتبيق

  2. ابو محمد

    مضافة تلقائيا وعندى طلب كيف اعرف متغير على مستوى المشروع كله اى انه يمكن العمل به فى جميع الاكتفتى .ولك جزيل الشكر .

    • اهلا وسهلا بك اخي , عن طريق جعل المتغير public static طريقتها سهلة, ويوجد طرق اخرى . ابحث عنها بلغة الجافا في جوجل وسوف تجد شروحات كثيرة تفيدك.

      إن لم تجد طلبك اخبرني لاعداد لك مثال لذلك .. وبالتوفيق لك ~

  3. ابو محمد

    بارك الله فيك وجزاك الله خيرا . وان ما نفعت معاى راح ابلغك

ضع بصمتك بتعليق يعبر عن امتنانك

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.