我将修改 eclipse 在主/详细模式中生成的项目。我找不到办法做到这一点。特别是,我会从 xml(res/values/arrays)资源文件中获取项目。
这是java文件:
package com.ga.termeapp.dummy;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class DummyContent {
public static class DummyItem {
public String id;
public String content;
public DummyItem(String id, String content) {
this.id = id;
this.content = content;
}
@Override
public String toString() {
return content;
}
}
public static List<DummyItem> ITEMS = new ArrayList<DummyItem>();
public static Map<String, DummyItem> ITEM_MAP = new HashMap<String, DummyItem>();
static {
addItem(new DummyItem("1", "Le terme"));
addItem(new DummyItem("2", "Le cure termali"));
addItem(new DummyItem("3", ""));
}
private static void addItem(DummyItem item) {
ITEMS.add(item);
ITEM_MAP.put(item.id, item);
}
}
一个可能的解决方案:
将静态类替换为您自己的静态类。就我而言,DummyItem
变成ProfileItem并具有不同的属性和DummyContent
变成ProfileListContent
.
然后替换静态块static { addItem ... }
通过静态方法。在以下情况下,我需要从数据库加载项目:
public static void setContext(Context c) {
if (db == null) db = new MyDbAdapter(c); // SQLiteOpenHelper + SQLiteDatabase manager
if (db.isOpen() == false) {
db.open();
Cursor c = db.getProfiles(); // database query
if (c.moveToFirst()) {
do {
ProfileItem item = new ProfileItem(c.getString(0), c.getString(1),
c.getString(2));
addItem(item);
} while (c.moveToNext());
}
}
}
我调用该方法setContext
从我一开始的主要活动来看onCreate
方法,在任何其他操作之前。
public void onCreate(Bundle savedInstanceState) {
ProfileListContent.setContext(this);
...
如果你想动态添加一个项目:
public static void insertProfile(ProfileItem profile) {
db.insertProfile(profile); // add item to the database
addItem(profile); // the same addItem provided with the eclipse wizard
}
我提供的,您当然可以更改 ListView Items 的布局这里有一个例子.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)