Java 类实例化不起作用
我有一个类,我想实例化它以使用它的setter和getter方法。但由于某些原因,我无法从其他外部类设置值 下面是基类Fila.java:Java 类实例化不起作用,java,android,Java,Android,我有一个类,我想实例化它以使用它的setter和getter方法。但由于某些原因,我无法从其他外部类设置值 下面是基类Fila.java: public class Fila { int icon; String name; public int getIcon() { return icon; } public void setIcon(int icon) { this.icon = icon; }
public class Fila {
int icon;
String name;
public int getIcon() {
return icon;
}
public void setIcon(int icon) {
this.icon = icon;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
在这里,我尝试设置此类的值:
public class agregar extends Activity implements OnItemClickListener{
ListView lview3;
MyAdapter adapter;
private ArrayList<Object> itemList;
private Fila fila;
SharedPreferences settings;
public static final String PREFS_NAME = "MyPrefsFile";
int img_ah;
String nom_ah;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.principal);
settings = getSharedPreferences(this.PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("hasLoggedIn", false);
editor.commit();
img_ah = settings.getInt("icono",0);
nom_ah = settings.getString("nombre",null);
prepareArrayLits();
lview3 = (ListView) findViewById(R.id.lista);
adapter = new MyAdapter(this, itemList);
lview3.setAdapter(adapter);
lview3.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long id) {
// TODO Auto-generated method stub
Fila bean = (Fila) adapter.getItem(position);
}
public void prepareArrayLits()
{
itemList = new ArrayList<Object>();
AddObjectToList(img_ah, nom_ah);
}
public void AddObjectToList(int imagen, String nombre)
{
fila = new Fila();
fila.setIcon(imagen);
fila.setName(nombre);
itemList.add(fila);
}
}
public类agregar扩展活动实现了mclicklinklistener{
ListView lview3;
MyAdapter适配器;
私有arraylistitemlist;
私人菲拉菲拉;
共享引用设置;
公共静态最终字符串PREFS\u NAME=“MyPrefsFile”;
国际货币基金组织;
串名;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
this.setContentView(R.layout.principal);
设置=GetSharedReferences(this.PREFS_名称,0);
SharedReferences.Editor=settings.edit();
编辑器.putBoolean(“hasLoggedIn”,false);
commit();
img_ah=settings.getInt(“icono”,0);
nom_ah=settings.getString(“nombre”,null);
制备耳石();
lview3=(ListView)findViewById(R.id.lista);
adapter=新的MyAdapter(此,itemList);
lview3.setAdapter(适配器);
lview3.setOnItemClickListener(此);
}
@凌驾
public void onItemClick(AdapterView arg0、视图arg1、整型位置、长id){
//TODO自动生成的方法存根
filabean=(Fila)adapter.getItem(位置);
}
公共图书馆
{
itemList=新的ArrayList();
AddObjectToList(img_-ah,nom_-ah);
}
public void AddObjectToList(int-imagen,字符串名称)
{
fila=新fila();
fila.setIcon(imagen);
fila.setName(nombre);
项目列表。添加(fila);
}
}
当我想得到这个值时,什么也看不出来
感谢您的帮助。当您将类实例化为全局私有类时,例如
private Fila fila = new Fila();
然后在一个方法中使用该障碍
public void foo() {
fila.setIcon(icon);
fila.getIcon();
}
或者在方法或构造函数中进行实例化
public void foo() {
Fila fila = new Fila();
fila.setIcon(icon);
fila.getIcon();
}
此外,当您有字段变量时,请在其旁边放置一个访问修饰符
private int icon;
private String name;
或
取决于您希望对这些字段设置的访问限制,以及哪些字段不起作用???您的意思是itemList为空?什么??嗨,不起作用的是fila.setIcon(imagen)方法。当我调用getIcon方法时,该方法为空,因为setIcon不工作。已解决!问题不是调用的类,而是数组itemList=newarraylist();它必须是一个Fila数组,而不是一个对象数组。我想真正的问题是,当向列表中添加内容时,没有任何东西会导致GUI重新呈现列表的内容。(你也有很多风格上的问题,但它们不是你必须解决的关键问题。)我不明白这与这个问题有什么关系……哼。。。代码包含了您编写的所有建议,但不起作用。
protected int icon;
protected String name;