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

时间:2015-10-06 08:02:38

标签: java android static sdk non-static

我意识到这是与此问题上其他先前线程的重复,但是我已经阅读了它们并且我不能为我的生活找出如何处理'非静态方法的问题&# 39; 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();

        }
    });
}

}

1 个答案:

答案 0 :(得分:2)

使用Adapter parent对象作为onItemClick方法的第一个参数来调用getItemAtPosition方法:

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

问题正在发生,因为getItemAtPosition不是static方法而您使用有效对象来调用它。