ارتباط بین اکتیویتی ها در برنامه نویسی اندروید لطفا راهنمایی ام کنید

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

من دو تا اکتویتی دارم که در یکی از آنها یک edittext(عددی) و یک textview وجود دارد حال در یک اکنیویتی دیگر edittext در عدد a ضرب می شود و در textview نمایش داده می شود حال مشکل من این است که زمانی این کار ها را می کنم در اکتیویتی دوم می گوید که باید  edittext و textview را تعریف کنید ولی من آنرا در اکتویتی اول تعرف کردم (فکر کنم نتونستم ارتباطشون رو برقرار کنم).

کدهای جاوای اکتیویتی اول :

public class alertdialog_food extends PreferenceActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.alertdialog_food);

        final TextView txt1=(TextView) findViewById(R.id.txt1);
        EditText edt1 = (EditText) findViewById(R.id.edt1);

        EditText b1 = edt1;
        final int b = Integer.parseInt(String.valueOf(b1));

    }
}

کدهای جاوا اکتیویتی دوم:

public class food extends ListActivity {
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.food);
// در کد زیر خطا می دهد و می گوید
// را تعرف کنیدtxt1
        txt1.setText('c'+"مانده: ");
    }
}

ممنون می شوم راهنمایی ام کنید

پاسخ ها

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

سلام شما باید پارامترهای اکتیویتی اول را بعد از تعریف اینتنت به اکتیوییتی دوم ریترن کنید....

اکتیویتی اول

//In the method that is called when click on "update"
Intent intent = ... //Create the intent to go in the second activity
intent.putExtra("oldValue", "valueYouWantToChange");
startActivityForResult(intent, someIntValue); //I always put 0 for someIntValue

//In your class
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    //Retrieve data in the intent
    String editTextValue = intent.getStringExtra("valueId");
}

توضیح:این خط مقدار یک متغییر در یک اکتیویتی رابه اکتیویتی دوم پاس می ده

intent.putExtra("oldValue", "valueYouWantToChange");

بعد داخل اکتیوتی دوم باید ان را از طریق یک متد intent.getStringExtraدریافت می کنید...

//When activity is created
String value = intent.getStringExtra("oldValue");
//Then change the editText value

//After clicking on "save"
Intent intent = new Intent();
intent.putExtra("valueId", value); //value should be your string from the edittext
setResult(somePositiveInt, intent); //The data you want to send back
finish(); //That's when you onActivityResult() in the first activity will be called

کلا کار سختی نیست برای اطلاعات بیشتر

http://stackoverflow.com/questions/13178056/get-data-from-another-activity

sokanacademy forum
کاربر سکان آکادمی 6 سال پیش

سلام

پاسخ دوستمون نسبتا کامل بود ولی ایشون جابه جا فرموند شما باید در اکتیوتی اولتون دیتا رو با استفاده از متد putExtra به متد دوم ارسال کنید.

کد صحیح به این صورت خواهد شد

اکتیوتی اول

Intent i = new Intent (FirstActivity.this , SecondActivity.class);

i.putExtra("KEY" , val);

startactivity(i);

و اکتیوتی دومتون

txt.setText(intent.getStringExtra("KEY"));

online-support-icon