Java 不能从静态上下文引用非静态方法

Java 不能从静态上下文引用非静态方法,java,android,static,sdk,non-static,Java,Android,Static,Sdk,Non Static,我意识到这是关于这个问题的其他先前线程的重复,但是我已经阅读了它们,并且我无法解决如何处理“非静态方法”getItemAtPosition“不能从静态上下文引用”的问题 这是我的密码: public class Favourites extends Insulter { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setConte

我意识到这是关于这个问题的其他先前线程的重复,但是我已经阅读了它们,并且我无法解决如何处理“非静态方法”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();

        }
    });
}
公共类收藏夹扩展侮辱者{
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.Favorites);
ArrayList favs=getIntent().GetStringArrayListXTRA(“favs”);
ListAdapter theAdapter=new ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,favs);
ListView ListView=(ListView)findViewById(R.id.favsList);
setAdapter(theAdapter);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长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();
}
});
}

}使用AdapterView的
父对象
对象,它是
onItemClick
方法中的第一个参数,用于调用
getItemAtPosition
方法:

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

出现问题的原因是
getItemAtPosition
不是
静态的
方法,您需要使用有效的对象来调用它。

您需要使用
parent.getItemAtPosition(position)
。正如您所说,我更改了代码,但是我得到一个不同的错误,字符串中的copyValueOf(Char[])不能应用于(java.lang.object)。有什么想法吗?@James:看我的编辑answer@James:但是为什么不只使用
String copyFav=parent.getItemAtPosition(position).toString()
?我对这一切都很陌生,我想这可能是我正在学习的教程的一部分,非常感谢您的帮助。