1. 程式人生 > >android與java淺談this與activity.this

android與java淺談this與activity.this

由於的java是草草的的過了一遍那樣學的 所以對很多概念已經是不太清楚了,這兩天開始看android 然後就發現很多東西有點看著懵逼 ,我是打算通過安卓去鞏固的java的
然後我看到了在活動中使用toast這裡 首先在此之前我的已經手動的寫了一個button的,那麼我希望說單擊button控制元件就能夠通過toast推送一些訊息 這讓我回憶起了初中的時候看的vb
廢話不多說 先放上那部分的程式碼 我給個別部分加了點註釋

public class FirstActivity extends AppCompatActivity {
/*FirstActivity繼承了AppCompatActivity(之前我在想那麼多的activity,為什麼我建立一個他就是一個類,不該是一個物件嗎 我現在剛剛開始看 也不能評判些什麼 以後會回來補坑的)*/
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);//必須有的 setContentView(R.layout.first_layout);//引入佈局檔案 //button控制元件 Button button1 = (Button) findViewById(R.id.button_1);//findViewById()方法返回的是一個View型別的物件 通過轉型給button 然後就是R.id.button在之前在layout.xml檔案裡面新增過的
button1.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v){ Toast.makeText(FirstActivity.this,"you clicked button1", Toast.LENGTH_SHORT).show(); } });/*關鍵是這句話 button1物件呼叫了一個setOnClick()方法,然後引數是後面的一個匿名內部類 匿名內部類重寫了onClick()方法*/
}

在這裡有一個值得注意的是activity.this,我以前從來沒有用過這種用法所以我通過搜尋了一下
StackOverFlow上的答案
然後分析了下我這裡的程式碼這裡的話因為有一個OnclickListener的內部類,this肯定針對的是new出來的這個物件,但是我們要的是Activity這個類的物件本身,這個是匿名內部類有的用法,但是我沒什麼印象了
然後就是這裡引數物件是一個匿名內部類,看的有點懵逼,而且沒有引用,不過仔細想想,但也好理解