簡體   English   中英

Android:無法從靜態上下文引用非靜態方法

[英]Android: Non-static method cannot be referenced from a static context

我在互聯網上搜索了這個錯誤的答案:

非靜態方法'getStringExtra(java.lang.String)'不能從靜態上下文中引用

我什么都沒找到,所以我來了。 這是我用來添加額外信息的代碼:

Intent OpenList = new Intent(this, ListRandom.class);
OpenList.putExtra("ListItem1",List.get(1));
OpenList.putExtra("ListItem2", List.get(2));
OpenList.putExtra("ListItem3", List.get(3));
OpenList.putExtra("ListItem4",List.get(4));
OpenList.putExtra("ListItem5", List.get(5));

這是Extras,出現錯誤:

    Intent OpenList = getIntent();
    ListItem1 = Intent.getStringExtra("ListItem1");
    ListItem2 = Intent.getStringExtra("ListItem2");
    ListItem3 = Intent.getStringExtra("ListItem3");
    ListItem4 = Intent.getStringExtra("ListItem4");
    ListItem5 = Intent.getStringExtra("ListItem5");

隨着我成為一名程序員,任何幫助將不勝感激!

更改

 Intent OpenList = getIntent();
ListItem1 = Intent.getStringExtra("ListItem1");
ListItem2 = Intent.getStringExtra("ListItem2");
ListItem3 = Intent.getStringExtra("ListItem3");
ListItem4 = Intent.getStringExtra("ListItem4");
ListItem5 = Intent.getStringExtra("ListItem5");

 Intent OpenList = getIntent();
ListItem1 = OpenList.getStringExtra("ListItem1");
ListItem2 = OpenList.getStringExtra("ListItem2");
ListItem3 = OpenList.getStringExtra("ListItem3");
ListItem4 = OpenList.getStringExtra("ListItem4");
ListItem5 = OpenList.getStringExtra("ListItem5");

使用您在此處創建的Intent對象

Intent OpenList = getIntent();

與其他任何類一樣,使用Intent.getStringExtra("words"); 正在以static方式調用它,如果您查看Intent Docs,則 getStringExtra(String name)不是static方法,因此如果IntentIntent OpenLIst = getIntent();一起創建一個實例Intent OpenLIst = getIntent();

另外,為了遵守Java編程標准,您應該對變量名使用大小寫混合,因此OpenList將為openListListItem1將為listItem1 顯然,這不是必需的,但是嘗試遵循標准是一個好主意

當你寫:

    ListItem1 = Intent.getStringExtra("ListItem1");

您正在類(即Intent )上使用方法(即getStringExtra(String name) ),這是一種static方法。

相反,您應該使用對象上的方法(即OpenList )進行非靜態方法。

因此,您的代碼應更改為:

    ListItem1 = OpenList.getStringExtra("ListItem1");

並應用於ListItem2,ListItem3等。

OpenList

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM