我有一个非常奇怪(对我而言)的问题。我有点像初学者。
基本上,我跟随tutorial:
但我想创建一个真正的类,Player,而不是像这个视频的作者那样使用字符串数组。
但在这样做时,我遇到了这个奇怪的问题......
当我只是从Fragment中创建一个Class,Player的实例时,我无法从同一个片段内部访问它的方法。当我想要这样的时候:
package com.tba.excercise_tabbed_lists;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class Frag_Fave extends ListFragment {
Player P0001 = new Player();
Player P0002 = new Player();
Player P0003 = new Player();
Player P0004 = new Player();
P0001.setName("");
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.list_layout_favorites, container, false);
return rootView;
}
}
... Android Studio高亮显示setName为红色,并说“"无法解析符号' setName'。
这似乎是如此基本和奇怪。我确定它有些愚蠢,但我已经研究过,似乎找不到类似的Q / A让我理解。
我可以从我的MainActivity做同样的事情,它工作正常。如果它可以从Fragment中创建类实例,那么为什么它不能访问该实例的方法???
以下是我的Player类代码:
package com.tba.excercise_tabbed_lists;
public class Player {
private String name;
public Player(){
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
答案 0 :(得分:3)
尝试,
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.list_layout_favorites, container, false);
P0001.setName("");
return rootView;
}
答案 1 :(得分:2)
请检查您的代码,OOPS概念永远不允许分配外部方法, 您可以在方法外声明或赋值,但不能在方法外调用方法。
所以尝试下面的代码,希望它能运作。
//P0001.setName(""); comment this outside and write it in method
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.list_layout_favorites, container, false);
P0001.setName("");
return rootView;
}