صفحه 2 از 2 اولاول 12
نمایش نتایج 41 تا 50 از 50

نام تاپیک: فراخوانی تابع؟؟

  1. #41
    کاربر دائمی آواتار vahid-p
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران
    پست
    1,140

    نقل قول: فراخوانی تابع؟؟

    در کلاس SendData از پروژه ای که فرستادم رویداد submitBtn رو تغییر بدید به :
            submitBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
    Intent mailApps=new Intent(Intent.ACTION_SEND);
    mailApps.setType("message/rfc822");
    mailApps.putExtra(Intent.EXTRA_EMAIL , new String[]{"email@example.com"});
    mailApps.putExtra(Intent.EXTRA_SUBJECT, "Email Subject");
    mailApps.putExtra(Intent.EXTRA_TEXT , "First name:"+fName.getText().toString()+"<br />Last name:"+lName.getText().toString());
    try {
    activity.startActivity(Intent.createChooser(mailAp ps, "Send Mail"));
    }catch(ActivityNotFoundException ex){
    Toast.makeText(getContext(),"Not found any application to send mail!",Toast.LENGTH_LONG);
    }
    }
    });

  2. #42

    نقل قول: فراخوانی تابع؟؟

    سلام واقعا ممنونم
    کاش میشد هزار بار کلید تشکر رو زد
    مرسی
    پس کلا نمیشه یه تابع در اکتیویتی اصلی نوشت و در اکتیویتی های دیگه صدا زد درسته؟
    و اینکه اگه قبل از ارسال ایمیل بخوام اتصال به نت رو چک کنم
    این تابع رو توی همون کلاس senddata این تابع رو نوشتم

    private boolean isNetworkCheck(){
    ConnectivityManager cm1 = (ConnectivityManager)getSystemService(Context.CONN ECTIVITY_SERVICE);
    NetworkInfo ni=cm1.getActiveNetworkInfo();
    if(ni==null)
    {
    return false;
    }else
    {
    return true;
    }

    }
    که با یه شرط قبل ارسال اتصال چک شه اما روی
    getSystemService
    ارور میده میگه create method کنم
    در صورتیکه همین تابع در اکتیویتی اصلی erorr نداره
    میشه بی زحمت این مشکل رو هم بگید
    مرسی بازم

  3. #43
    کاربر دائمی آواتار vahid-p
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران
    پست
    1,140

    نقل قول: فراخوانی تابع؟؟

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

    میشه. مشکل از یه جا دیگست احتمالا. برای همین گفتم یه بار دیگه این قسمت برنامه رو بنویس.

    که با یه شرط قبل ارسال اتصال چک شه اما روی
    getSystemService
    ارور میده میگه create method کنم
    خب این متد برای Dialog وجود نداره و برای Activity وجود داره. و برای همین هم ما در Dialog یه اشاره گر به Activity اصلی تعریف کردیم که بتونیم به متدهاش دسترسی داشته باشیم.
    در نتیجه متدت رو به این صورت بنویس:
    private boolean isNetworkCheck() {    ConnectivityManager cm1 = (ConnectivityManager) activity.getSystemService(Context.CONNECTIVITY_SER  VICE);
    NetworkInfo ni = cm1.getActiveNetworkInfo();
    if(ni!=null && ni.isConnected()){
    return true;
    }
    return false;
    }

    شما متدهایی که تو اینترنت میبینید استفاده شده اکثرا در کلاس ارث بری شده از Activity نوشتن و مستقیم از این متدها استفاده کنی و خیلی از این متدها رو Dialog نداره باید از activity استفاده کنی به این صورت که نوشتم.
    میتونی اینو به یه کلاس دیگه بدی یا Activity رو به صورت singleton در بیاری و هر جایی ازش استفاده کنی. و یک کلاس دیگه فقط برای انجام اینکارها باشه، و فقط کلاسهای Activity و Dialog برای گرافیک باشن و نخوان وارد جزئیات ارسال ایمیل و ارتباط اینترنتی و... باشن. اما در حال حاضر همینی که هست کفایت میکنه.

  4. #44

    نقل قول: فراخوانی تابع؟؟

    ممنونم ازتون مرسی درست شد دقت نکرده بودم
    فقط اگه ایرادی نداره میخواستم بدونم
    من اومد پیغام بدم مثلا اینترنت وصل نیست
    این خط رو نوشتم
    Toast.makeText(MainActivity.this, "در اتصال خطا رخ داده است  بعدا تلاش کنید", Toast.LENGTH_SHORT).show();

    اما روی mainactivity خطا داد
    من مثل شما activity.this نوشتم نشد خطا داد
    مگه نباید از این به بعد برا اینجور استفاده ها بنویسم activity. فلان
    ؟؟؟؟

    مرسی

  5. #45
    کاربر دائمی آواتار vahid-p
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران
    پست
    1,140

    نقل قول: فراخوانی تابع؟؟

    ببینید this متد نیست که. ما this.activity داریم ولی activity.this ندارم. this روی آبجکت اعمال نمیشه، روی کلاس اعمال میشه و منظورش آبجکت فعلی از اون کلاس.
    در listener البته اگر this بنویسید منظور همون listener است نه کلاس بیرونی.

    خب برای مدت Toast.makeText باید ببینیم چی میخواد:
    اولین پارامتر Context است. باید آبجکتی از نوع Context براش پیدا کنیم.
    خب خود کلاس Dialog متد getContext داره. پس به راحتی مثل کدی که در SendData هم نمونش بود:
    Toast.makeText(getContext(), "Not found any application to send mail!", Toast.LENGTH_LONG);

    getContext

    در کلاس MainActivity کدی که نوشتی درسته. ولی در کلاس SendData هر چند نیازی به activity نیست چون Dialog خودش متد getContext داره. جایی گفتم از activity استفاده کن که Dialog خودش نداره، و البته میتونی از هر دو استفاده کنی ولی فکر کنم اگر از activity استفاده کنی در حالی که Dialog هم باشه پشت Dialog نمایش بده. این موضوع رو دقیق نمیدونم عملا تفاوتشون چیه و اینکه Context کدوم باشه مهمه یا نه (اینو باید بری در جاواداک Toast.makeText بخونی)

    در کلاس SendData هر سه این موارد جواب میدن: (ببین تفاوتی دارن یا نه)
    Toast.makeText(activity,"Error in Connection",Toast.LENGTH_SHORT).show();
    Toast.makeText(activity.getApplicationContext(),"E rror in Connection",Toast.LENGTH_SHORT).show();
    Toast.makeText(getContext(),"Error in Connection",Toast.LENGTH_SHORT).show();

    اینکه activity مستقیما میتونی به جای Context استفاده کنی چون خودش از Context ارث برده.

    راستی متد show() بعد از makeText فراموش نشه. کلاس SendData تصحیح کن، فراموش شده :|

    موفق باشید.
    آخرین ویرایش به وسیله vahid-p : شنبه 26 تیر 1395 در 14:56 عصر

  6. #46

    نقل قول: فراخوانی تابع؟؟

    سلام استاد عزیز
    خیلی ازتون ممنونم
    ببخشید از کجا باید بدونم چه کلاسی چه متدهایی داره مثلا این که dialog متد getcontext رو داره و ...
    و ببخشید میدانم اینجا جاش نیست
    ولی این view چیه که من وقتی میپرسم میخواهم فایل . Cs رو در ادیت ویو لود کنم با استایل میگن باید ویو ایجاد کنم!
    بازم ممنونم

  7. #47
    کاربر دائمی آواتار vahid-p
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران
    پست
    1,140

    نقل قول: فراخوانی تابع؟؟

    ببخشید از کجا باید بدونم چه کلاسی چه متدهایی داره مثلا این که dialog متد getcontext رو داره و ...
    به چند طریق:
    1- مطالعه JavaDoc مربوط به کلاس که تمام فیلدها و متدها (بعلاوه متدهایی که از کلاس های پدر به ارث برده) رو میتونی ببینی
    2- اکثر IDE ها اجازه میدن به راحتی با Ctrl و کلیک بر روی اسم کلاس یا متد به محل تعریفش بری (Android Studio Tips & Tricks: Moving Around). خب چه از Android Studio استفاده کنی چه Eclipse و Netbeans ... این امکان رو بهتون میدن. برای اینکه خلاصه متدها و فیلدها رو ببینی پست دوم: http://stackoverflow.com/questions/1...ts-for-a-class
    ضمنا کافیه شما اگر آبجکتتون از نوع Dialog هست (یا ارث برده از Dialog) با "." خود IDE تمام گزینه های مجاز رو بهتون نشون میده. اگر داخل کلاس هستید بنویسید: this. و خودش تمام متدها و فیلدهای در دسترس رو نشون میده. البته به این نکته توجه کنید برای آبجکت متدهای استاتیک نشون داده نمیشه و باید اسم کلاس رو وارد کنی و "." که اونوقت فقط متدهای استاتیک رو میتونی ببینی (بعلاوه فیلدها)
    3- خیلی وقت ها از روی اسم متد و جاواداک نمیتونی استفاده از اونها رو بفهمی و حتما باید آموزش یا مثالی از اون رو ببینی.

    ولی این view چیه که من وقتی میپرسم میخواهم فایل . Cs رو در ادیت ویو لود کنم با استایل میگن باید ویو ایجاد کنم!
    نمیدونم EditView چیه. سرچ بزن، اینم شاید به کارت بیاد:http://www.vogella.com/tutorials/And...s/article.html

    موفق باشید.
    آخرین ویرایش به وسیله vahid-p : یک شنبه 27 تیر 1395 در 12:34 عصر

  8. #48

    نقل قول: فراخوانی تابع؟؟

    ببخشید منظورم همون edit text بود
    ممنونم خیلی راهنمایی کردید
    یه دنیا سپاس

  9. #49

    نقل قول: فراخوانی تابع؟؟

    سلام ببخشید تو رو خدا یه مشکل تازه
    من میخوام متن داخل textview رو با زدن یه کلید و باز شدن یه دیالوگ به extview دیالوگ بفرستم این کدها رو در دیالوگ نوشتم

    LayoutInflater factory2 = getLayoutInflater();
    View editcode = factory2.inflate(R.layout.activity_main,null);
    code = (EditText) findViewById(R.id.editcode1);

    coding=code.getText().toString();


    di.setText(coding);

    Bundle extra=activity.getIntent().getExtras();
    String n;
    n=extra.getString("nam5");
    di.setText(n);
    String get=di.getText().toString();


    و این رو در باتن اکتیویتی اصلی که میخوام با زدنش دیالوگ باز شه و متنم رو به دیالوگ بفرسته نوشتم
    String n;
    String nam=coding;
    n=nam.toString();
    startActivity(new Intent(MainActivity.this, Ostan.class));
    Intent mIntent = new Intent(MainActivity.this,Dialogsave.class);
    mIntent.putExtra("nam5", n);
    startActivity(mIntent);
    اما در اجرا برنامه باز بسته میشه
    میشه کمک کنید
    ؟؟؟

  10. #50

    نقل قول: فراخوانی تابع؟؟

    دوستان کسی راهی برای ارسال داده از اکتیویتی به دیالوگ نداره؟؟

صفحه 2 از 2 اولاول 12

تاپیک های مشابه

  1. فراخوانی برنامه های تحت ویندوز با SheellExecute یا WinExec
    نوشته شده توسط موسوی در بخش برنامه نویسی در Delphi
    پاسخ: 7
    آخرین پست: دوشنبه 26 دی 1384, 23:34 عصر
  2. فراخوانی help بدون کلیدf1
    نوشته شده توسط ario در بخش VB.NET
    پاسخ: 2
    آخرین پست: شنبه 03 آبان 1382, 12:21 عصر
  3. فراخوانی acrobat reader
    نوشته شده توسط SReza1 در بخش برنامه نویسی در Delphi
    پاسخ: 4
    آخرین پست: دوشنبه 21 مهر 1382, 00:37 صبح
  4. چگونگی فراخوانی فیلدهای تصویری توسط asp از access
    نوشته شده توسط vorojakt در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: یک شنبه 09 شهریور 1382, 01:12 صبح
  5. فراخوانی عکس از بانک اکسس ( با MSADO یا همان mdac)
    نوشته شده توسط ع.م.خ در بخش VB.NET
    پاسخ: 5
    آخرین پست: شنبه 08 شهریور 1382, 20:39 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •