0

我有一个使用标签主机制作的应用程序。单击时我需要刷新我的列表视图(第二个选项卡)。此视图包含数据库数据,很明显它需要始终保持最新状态(因为在整个应用程序中我进行了更新、插入、删除……我该怎么做?

这是选项卡调用的类中的 onCreate

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.bookmarks); 
    final Database info=new Database(this); 
    final Timer t = new Timer(); 
    info.open(); 
    final Cursor data=info.getData(); 
    final ListView listView1 = (ListView) findViewById(R.id.list_mia); 
    String[] from = new String[] {"contenuto"};
    int[] to = new int[] { android.R.id.text1 };
    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,android.R.layout.simple_list_item_1, data, from, to); 
    listView1.setAdapter(adapter);

这是选项卡类(“有罪的类是书签)

    super.onCreate(savedInstanceState);
    setContentView(R.layout.tabs);
    TabHost tabHost = getTabHost();
    // Tab per lettore
    TabSpec lettoretab = tabHost.newTabSpec("Lettore");
    lettoretab.setIndicator("Lettore", getResources().getDrawable(R.drawable.lettore));
    Intent lettoreIntent = new Intent(this, Lettore.class);
    lettoretab.setContent(lettoreIntent);
    // Tab per bookmarks
    TabSpec bookmarkstab = tabHost.newTabSpec("Bookmarks");
    bookmarkstab.setIndicator("Bookmarks", getResources().getDrawable(R.drawable.bookmarks));
    Intent bookmarksIntent = new Intent(this, Bookmarks.class);
    bookmarkstab.setContent(bookmarksIntent);
    // Tab per create
    TabSpec createtabs = tabHost.newTabSpec("Create");
    createtabs.setIndicator("Create", getResources().getDrawable(R.drawable.create));
    Intent createIntent = new Intent(this, Create.class);
    createtabs.setContent(createIntent);
    // Tab per feed
    TabSpec feedtabs = tabHost.newTabSpec("Feed");
    feedtabs.setIndicator("Feed", getResources().getDrawable(R.drawable.feed));
    Intent feedIntent = new Intent(this, Feeds.class);
    feedtabs.setContent(feedIntent);
    // Tab per actionmobileapp
    TabSpec actionmobileapptabs = tabHost.newTabSpec("App");
    actionmobileapptabs.setIndicator("App", getResources().getDrawable(R.drawable.actionmobileapp));
    Intent actionmobileappIntent = new Intent(this, Actionmobileapp.class);
    actionmobileapptabs.setContent(actionmobileappIntent);
    // Aggiungo i tabs
    tabHost.addTab(lettoretab);
    tabHost.addTab(bookmarkstab);
    tabHost.addTab(createtabs);
    tabHost.addTab(feedtabs);
    tabHost.addTab(actionmobileapptabs);

我试过回忆 onResume 中的代码,但没有成功......

4

3 回答 3

1
TabHost tabHost = getTabHost();
            Intent intent = new Intent(this, c);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            TabHost.TabSpec spec = tabHost.newTabSpec("tab" + labelId);
            View tabIndicator = LayoutInflater.from(this).inflate(
                    R.layout.tab_indicator, getTabWidget(), false);
            TextView title = (TextView) tabIndicator.findViewById(R.id.title);
            title.setText(labelId);
            ImageView icon = (ImageView) tabIndicator.findViewById(R.id.icon);
            icon.setImageResource(drawableId);

            spec.setIndicator(tabIndicator);
            spec.setContent(intent);
            tabHost.addTab(spec);

将此添加到 addTab() 内的 TabActivity 类中。

谢谢....

于 2012-07-10T09:38:28.413 回答
0

这可能与此重复:

SimpleCursorAdapter 不随数据库更改而更新

您应该查看您想要使用的 LoaderManager 的 Android 文档。

LoaderManager 类参考和代码示例

于 2012-07-10T09:36:07.723 回答
0

在 'Activity' 中公开 'adpater' 变量,并在这里onResume调用这个 mett是您新更新的光标。不要忘记调用它。adapter.swapCursor(c)cnotifyDataSetChanged()

于 2012-07-10T09:49:16.373 回答