خلاصه نویسی های برنامه نویسی اندروید



package ir.ben.hassan;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.view.DragStartHelper;
import android.os.Bundle;
import android.widget.Toast;
public class two extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_two);
        Toast.makeText(this, "two OnCreate ", Toast.LENGTH_LONG).show();

    }

    @Override
    protected void onPause() {
        super.onPause();
        Toast.makeText(this, "twoOnPause ", Toast.LENGTH_LONG).show();

    }

    @Override
    protected void onStop() {
        super.onStop();
        Toast.makeText(this, "twoOnStop ", Toast.LENGTH_LONG).show();

    }

    @Override
    protected void onStart() {
        super.onStart();
        Toast.makeText(this, "twoOnStatrte ", Toast.LENGTH_LONG).show();

    }

    @Override
    protected void onResume() {
        super.onResume();
        Toast.makeText(this, "twoOnResume ", Toast.LENGTH_LONG).show();

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Toast.makeText(this, "twoOnDestroy ", Toast.LENGTH_LONG).show();

    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Toast.makeText(this, "twoOnRestart ", Toast.LENGTH_LONG).show();

    }
}

نتیجه اخلاقی اول کریت میشه بعد استارت میشه بعد ریزوم 

وقتی هم تو گوشی بک می زنم میره تو همون mainactivity دیگه two اول پاز بعد استپ بعدم دیستروی میشه!

یادت باشه اگه مثلا داری زمانو به کاربر نشون میدی و میخوای درست باشه باید غیر از onCreate بری تو onResume هم بنویسی تاریخو بزن(تازه اینم فقط همون سری اول که ریزوم شد کار می کنه اگه بخوای هر دقیقه آپدیت کنه باید بهش دستور بدی)

 

اینم شکل ترتیب کارایی که انجام میشه:

هی!


با ساختن یه activity جدید سه تا چیز اضافه میشه

یه فایل جاوا

یه layout xml

یه توضیح تو manifest

 

تو منیسفت جلو اسم همه activityها یه نقطه گذاشته معنیش اینه که تو پکیج فعلی بعد تو این اکتیویتی 

اگه تو یه پکیج دیگه باشه باید قبل نقطه آدرسای پکیجه رو بنویسی

  package="ir.ben.hassan">
<activity android:name=".two"></activity>
<activity android:name="ir.ben.hassan.two"></activity>

حالا وقتی می خوای یه activity دیگه یا یه اپ دیگه فعال شه میری تو دکمه ت می نویسی:

button.setOnLongClickListener(new View.OnLongClickListener() {
    @Override
    public boolean onLongClick(View v) {
        Intent intent=new Intent(MainActivity.this,two.class);
         startActivity(intent);
        // button.setText("Yahoooo");
        return true;
    }
});

اولی مبدا، دومی مقصد.

موارد استفاده intent:

رفتن به یه activity دیگه، تماس صوتی، بازکردن یه صفحه وبسایت، بازکردن تنظیمات و.

تا حالا داشتیم با متد OnCreate کار می کردیم:

@Override
protected void onCreate(Bundle savedInstanceState) {

یه activity متدهای دیگه ای هم داره. بعد از تموم شدن OnCreate اگه بریم بنویسیم On خودش کلیاشو میاره

OnResume

OnStart

OnStop

OnDestroy

OnRestart

اینا رو تو activity دوم که می نوشتم خودش نمیاورد دستی کپی کردم و برا این که ارور نده باید @Overrideشو پاک کنی

بعدا فهمیدم: دلیل این که خودش نمیاورد on با اوی کوچیکه :|

 

 

 

#باگگگگگ :

{یه چیز عجیبم که برا من اتفاق افتاد گفتم توی pause نوشته ی توی mainActivity رو تغییر بده وقتی بر می گشتم می دیدم این نوشته تغییر کرده ولی هنوز دکمه هه مثل قبل داره رنگو عوض می کنه. دکمه هه که تو OnCreate بوده. ولی خب تو OnCreate که متنه هم تاریخ بود این همون متن OnPause مونده که :|

بالاخره داره OnCreate کار می کنه یا نه؟!}

  • طریقه خوش آمد گویی:

میری تو OnCreate زیر 

setContentView(R.layout.activity_main);

می زنی Toast و دو تا گزینه میاره توست خالیه رو می زنی:

Toast.makeText(this, "", Toast.LENGTH_SHORT).show();

این this چیزی از جنس context هست

این جا همون main activity هست


راه آسون تر:

اصلا اون متد اضافه شده و اون implement تو خط اولو نمی نویسی

میری رو this جلو چشم OnClickListener وای میسی alt+enter می زنی 

بهت میگه توی main activity این implemenet . کنم؟ میگی آره خودش همه اونا رو میسازه

 

اگه چنتا دکمه می خواستی برا هر کدوم یه OnClickListener میذاری(این غیربهینه است ولی حالا!)

اون جا به جای this می نویسی new On خودش میاره new OnClick Listener

 

برای این که کلی مموری نگیرن میای تو همون یه دونه متد onclicklistener می نویسی برای هر دکمه اگه اونی که کلیک شده همینه بیا کار اینو بکن

اینجا رو نتونستم چن تا دکمه بذارم باگگگگگ

 

 

حالا اگه خواستی کلیک طولانی رو بگی از OnLongClickListener استفاده می کنی

جلو باتن می نویسیش و alt+enter و .

مثال:

button.setOnLongClickListener(new View.OnLongClickListener() {
    @Override
    public boolean onLongClick(View v) {
        button.setText("Yahoooo");
        return false;
    }
});

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

برا اینکه درستش کنی return false  رو بکن true


تبلیغات

آخرین ارسال ها

آخرین جستجو ها

ساخت سرور مجازی .... طراحی سایت ، سئو ،تبلیغات در گوگل بررسی شرکت های اجاره ماشین در کیش صحبتِ جانانه نور علی نور کافی نت راه فردا نودژ تخت بیمارستانی نجفی تعمیر گیربکس خودرو انواع دستگاه دسته بندی