android与java浅谈this与activity.this

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq754772661/article/details/73826921

由于的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这个类的对象本身,这个是匿名内部类有的用法,但是我没什么印象了
然后就是这里参数对象是一个匿名内部类,看的有点懵逼,而且没有引用,不过仔细想想,但也好理解

猜你喜欢

转载自blog.csdn.net/qq754772661/article/details/73826921