【问题标题】:How to choose the correct way to get relevant context in Java?如何选择正确的方式在 Java 中获取相关上下文?
【发布时间】:2020-03-16 11:28:44
【问题描述】:

我最近开始使用 java,我试图了解“上下文”到底是什么,以及如何正确使用它。

public AdapterView.OnItemClickListener selectDevice = new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

            String info = ((TextView) view).getText().toString();
            String adress = info.substring(info.length()-17);
            Intent comIntent = new Intent(MainActivity.this, Communication.class); //WHY???


        }
    };

对于这个例子和 Intent 争论,我们为什么不使用“getContext()”或“getApplicationContext”或者只使用“this”?

【问题讨论】:

    标签: java android android-intent anonymous-class


    【解决方案1】:

    我试图了解“上下文”到底是什么

    What is 'Context' on Android?

    为什么我们不使用“getContext()”或“getApplicationContext”或者只是 “这个”?

    因为this 没有引用匿名类中的Activity。 看这里 Access "this" from Java anonymous class

    【讨论】:

      【解决方案2】:

      调用getContext()getApplicationContext()this.getContext() 相同,对吗? this 给出了您所在的对象类。因此,当您能够调用 getContext() 时,这意味着您在一个扩展 Context 类并具有 getContext() 函数的类中。
      例如来自 Activity 您可以调用getContext(),因为它有这个功能。 但在这种情况下,您属于OnItemClickListener 班级。而那个类没有函数getContext()。你必须在一个有getContext()函数的类中。

      【讨论】:

        猜你喜欢
        • 2023-03-05
        • 1970-01-01
        • 2014-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-17
        • 2018-12-12
        相关资源
        最近更新 更多