如何在android主/细节活动中修改虚拟内容?

如何在android主/细节活动中修改虚拟内容?,android,Android,我将在master/detail模式中修改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 DummyConte

我将在master/detail模式中修改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);
    }
}
package com.ga.termeapp.dummy;
导入java.util.ArrayList;
导入java.util.HashMap;
导入java.util.List;
导入java.util.Map;
公共类内容{
公共静态类DummyItem{
公共字符串id;
公共字符串内容;
公共DummyItem(字符串id、字符串内容){
this.id=id;
this.content=内容;
}
@凌驾
公共字符串toString(){
返回内容;
}
}
公共静态列表项=新建ArrayList();
公共静态映射项_Map=newhashmap();
静止的{
增补项目(新项目(“1”、“术语”);
增补项目(新的Dummy项目(“2”、“Le cure termali”);
增补项目(新的Dummy项目(“3”);
}
专用静态无效添加项(DummyItem){
项目。添加(项目);
项目地图放置(项目id、项目);
}
}

我也有同样的问题,但没有从我更改的数组中获取所有值

addItem(new DummyItem("1", "Le terme"));
addItem(new DummyItem("2", "Le cure termali"));
addItem(new DummyItem("3", ""));
我编辑了这些addItem,然后如果您想将字符串添加到项目中,您必须编辑所有这部分代码

    public String id;
    public String content;

    public DummyItem(String id, String content) {
        this.id = id;
        this.content = content;
希望它能帮助您。

一个可能的解决方案:

用自己的类替换静态类。在我的例子中,
DummyItem
变成并具有不同的属性,
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());
        }
    }
}
在执行任何其他操作之前,我从
onCreate
方法开头的主活动调用方法
setContext

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项目的布局。

这对我来说很有效,但不确定这是否是最佳做法。 删除静态块,并在
Oncreate
上的
ItemListActivity.java
上添加此代码

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    if (DummyContent.ITEMS.isEmpty())
    {
        DummyContent.addItem(new DummyItem("1", getResources().getString(R.string.menu1)));
        DummyContent.addItem(new DummyItem("2", getResources().getString(R.string.menu2)));
        DummyContent.addItem(new DummyItem("3", getResources().getString(R.string.menu3)));
    }

希望这能有所帮助

,因为每次创建列表或主/详细活动时都会生成此信息,我使用的快捷方式是:单击包和类文件并使用
shift+F6
重构名称,然后打开文件并用我想要的内容替换DummyContent和DummyItems,然后从那里开始。在数据库支持的实现中,项目列表是否保持静态?