我是 Android 新手,我正在实施一个小项目,其中我有来自一个 Drupal 网站的新闻。这个应用程序有 3 个标签,每个标签都有一个包含特定内容的文章列表。文章列表由以线性布局排列的 textviews 和 imageviews 创建。当我点击标题时,文章正在以详细信息打开。这些文章是从 Drupal 站点通过tHTTP POST
和ViewJSON
模块加载的。选项卡是用FragmentActivity
和创建的TabHost
。一切都很好,直到这里都可以正常工作。
我的问题是我想制作一个刷新按钮,放置在选项卡上,当我按下它时,文章列表必须刷新或重新加载并保持当前选项卡打开。我试图替换标签片段内容并重新打开它,但是当我点击一篇文章的标题打开它时,标签内容保留在所有片段下的堆栈中。我提到当我点击文章标题时,会打开一个新片段。我发送了文章的 id 作为参数,并在同一个片段中打开了文章的内容。
我正在尝试使用此代码,但没有成功。
Button btn_refresh = (Button) findViewById(R.id.btn_refresh);
btn_refresh.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String current_tab = mTabHost.getCurrentTabTag();
if(current_tab.contains("POPULARE")){
Fragment f;
f = new PopulareActivity();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.tot,f);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.commit();
}
if(current_tab.contains("RECOMANDATE")){
Fragment f;
f = new RecomandateActivity();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.tot,f);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.commit();
}
}
});
更确切地说,我在应用程序上输入,按 Tab2(显示来自 tab2 的文章列表),按刷新按钮,打开一篇文章,按移动设备的后退按钮并显示 tab2 的内容。现在,我在 tab1 上输入(并显示来自 tab1 的文章列表),从 tab1 列表中打开一篇文章,显示我需要的内容,然后在移动设备上按下后退按钮。此时显示的是 tab2 的内容(我按下刷新按钮的 tab2 中的文章列表。)。
要打开我使用的文章的详细信息:
tv.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Fragment f;
f = new DetaliiActivity();
Bundle data = new Bundle();
data.putInt("id", nid);
f.setArguments(data);
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.tot,f);
ft.addToBackStack(null);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.commit();
}
});
提前感谢您的帮助!