2015-10-06 232 views
-2

我意識到這是其他前面的線程在這個問題上的重複,但是我已經閱讀了它們,並且我不能爲我的生活制定出如何處理這個問題非靜態方法getItemAtPosition'不能從靜態上下文中引用'。非靜態方法不能從靜態上下文中引用

這是我的代碼:

public class Favourites extends Insulter { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.favourites); 

    ArrayList<String> favs = getIntent().getStringArrayListExtra("favs"); 
    ListAdapter theAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, favs); 
    ListView listView = (ListView) findViewById(R.id.favsList); 
    listView.setAdapter(theAdapter); 

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      String copyFav = String.copyValueOf(AdapterView.getItemAtPosition(position)); 
      myClip = ClipData.newPlainText("copyFav", copyFav); 
      myClipboard.setPrimaryClip(myClip); 
      Toast.makeText(getApplicationContext(), R.string.copied, Toast.LENGTH_SHORT).show(); 

     } 
    }); 
} 

}適配器視圖的

+0

你需要使用'parent.getItemAtPosition(position)'。 –

回答

2

使用parent對象,它是第一個參數在onItemClick方法調用getItemAtPosition方法:

String copyFav = String.copyValueOf(parent.getItemAtPosition(position) 
             .toString(). toCharArray()); 

問題發生,因爲getItemAtPosition不是static方法,而是使用有效的對象來調用它。

+0

我改變了代碼,正如你所說的,但是我得到一個不同的錯誤copyValueOf(Char [])在字符串中不能應用(java.lang.Object)。有任何想法嗎? – James

+1

@James:看到我的編輯答案 –

+1

@James:但爲什麼不使用'String copyFav = parent.getItemAtPosition(position) .toString()'? –

相關問題