使用活动组标签之间的切换是想显示最后一项活动 - 选项卡的ActivityGroup [英] Switching between tab using activity group it want to display last activity - Tab ActivityGroup
问题描述
我已经写标签为我的Android应用程序。
I have written tab for my android application.
我的问题是标签之间通过活动组是要显示最后一个活动开关。我想说明过去开/访问屏幕,当我们浏览tab.My之一就是去第一个画面:
My question is switching between tab using activity group it want to display last activity. I want to show last open/visited screen when we navigate the tab.My one is go to first screen:
我要显示最近打开的时候,通过选项卡浏览屏幕
I need to show last opened screen when navigate through Tab
标签1 - >销售。这里面包含(actiivity)10屏 选项卡2 - >联系。这包含5个屏幕内(actiivity) 选项卡3 - > Setting.This包含8个屏幕内。 (actiivity)
Tab 1 -> Sales. This contain 10 screen inside (actiivity) Tab 2 -> Admin .This contain 5 screen inside (actiivity) Tab 3 -> Setting.This contain 8 screen inside. (actiivity)
我点击选项卡1,它加载标签1的屏幕,这是包括销售路线。然后我点击一个销售路由表,它关系到零售商的列表中的第一tab.Then我陈词滥调选项卡3设置完成一些工作和放大器;回过头来销售,这时候就应该显示最近打开的画面,在销售的标签。
当我点击选项卡,它应该显示最近打开的活动如何办?
我不喜欢this.Please表示,我想改变$ C $下我的要求。
I did like this.Please indicate where I want to change the code for my requirements.
登录后MainActivity.It会调用
MainActivity.It will call after login
public class MainActivity extends TabActivity {
int selectedTab;
TabHost tabHost ;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tabview);
TabHost t = getTabHost();
tabHost = (TabHost)findViewById(android.R.id.tabhost);
TabSpec firstTabSpec = tabHost.newTabSpec("tid1");
TabSpec secondTabSpec = tabHost.newTabSpec("tid1");
TabSpec thirdTabSpec = tabHost.newTabSpec("tid1");
/** TabSpec setIndicator() is used to set name for the tab. */
/** TabSpec setContent() is used to set content for a particular tab. */
firstTabSpec.setIndicator("Sales").setContent(new Intent(this,SalesActivityGroup.class));
secondTabSpec.setIndicator("Admin").setContent(new Intent(this,SettingActivityGroup.class));
thirdTabSpec.setIndicator("Setting").setContent(new Intent(this,SettingActivityGroup.class));
tabHost.addTab(firstTabSpec);
tabHost.addTab(secondTabSpec);
tabHost.addTab(thirdTabSpec);
tabHost.setCurrentTab(0);
tabHost.setMinimumHeight(25);
}
public void onTabChanged(String arg0) {
selectedTab = tabHost.getCurrentTab();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
moveTaskToBack(false);
return true;
}
return super.onKeyDown(keyCode, event);
}
}
首先TAB1(销售部)的SalesGroupActivity
First Tab1(Sales)'s SalesGroupActivity
public class SalesActivityGroup extends ActivityGroup {
public static SalesActivityGroup group;
private ArrayList<View> history;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.history = new ArrayList<View>();
group = this;
View view = getLocalActivityManager().startActivity("Sales",
new Intent(this, SalesRouteActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView();
replaceView(view);
}
public void replaceView(View v) {
history.add(v);
setContentView(v);
}
public void back() {
if (history.size() > 0) {
history.remove(history.size() - 1);
if (history.size() > 0) {
setContentView(history.get(history.size() - 1));
} else {
finish();
}
} else {
finish();
}
}
@Override
public void onBackPressed() {
SalesActivityGroup.group.back();
return;
}
编辑 这是FirstTab的firstActivity - SalesRouteActivity
Edited This is FirstTab's firstActivity - SalesRouteActivity
public class SalesRouteActivity extends ListActivity{
TableLayout tl;
static int positions = 0;
static String keyword ="";
int uploadSize = 0;
private NotificationManager mNotificationManager;
private int SIMPLE_NOTFICATION_ID;
String strBusinessUnit = "";
String strExecutive = "";
String strTerritoryCode = "";
SimpleAdapter sd;
View row = null;
View selectRow = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sales_routes);
SharedPreferences myPrefs = this.getSharedPreferences("myLogedPrefs",MODE_WORLD_READABLE);
strBusinessUnit = myPrefs.getString("BusinessUnit", "");
strExecutive = myPrefs.getString("Executive", "");
strTerritoryCode = myPrefs.getString("TerritoryCode", "");
ArrayList<SalesRoutes> routeList = getSalesRoute();
ArrayList<HashMap<String, String>> routhPath = new ArrayList<HashMap<String, String>>();
for (int i = 0; i < routeList.size(); i++) {
if(Integer.parseInt(routeList.get(i).getOutlets()) >0){
HashMap<String, String> map = new HashMap<String, String>();
map.put("routeCode",((SalesRoutes) routeList.get(i)).getRouteCode());
map.put("routeName",((SalesRoutes) routeList.get(i)).getDescription());
map.put("outlets", ((SalesRoutes) routeList.get(i)).getOutlets());
routhPath.add(map);
}
}
ListView list = getListView();
sd = new SimpleAdapter(this, routhPath, R.layout.route_path,new String[] {"routeCode","routeName","outlets" },new int[] { R.id.routeCode,R.id.routeName,R.id.outlets});
row = getLayoutInflater().inflate(R.layout.route_path_row, null, false);
getListView().addHeaderView(row);
list.setAdapter(sd);
list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
list.setSelected(true);
list.setTextFilterEnabled(true);
list.setItemsCanFocus(true);
list.setItemChecked(positions, true);
list.setSelectionAfterHeaderView();
if (routeList.size() > 0) {
keyword = routeList.get(0).getRouteCode();
}
uploadSize = new UploadActivity().getUploadTable();
if (uploadSize > 0) {
mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
final Notification notifyDetails = new Notification(R.drawable.icon, "New Alert, Click Me!",System.currentTimeMillis());
Context context = getApplicationContext();
CharSequence contentTitle = "Upload Available...";
CharSequence contentText = "Browse Android Official Site by clicking me";
Intent notifyIntent = new Intent(android.content.Intent.ACTION_VIEW,Uri.parse("http://www.android.com"));
PendingIntent intent = PendingIntent.getActivity(SalesRouteActivity.this, 0, notifyIntent,android.content.Intent.FLAG_ACTIVITY_NEW_TASK);
notifyDetails.setLatestEventInfo(context, contentTitle,contentText, intent);
mNotificationManager.notify(SIMPLE_NOTFICATION_ID, notifyDetails);
}
}
@SuppressWarnings("unchecked")
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
HashMap<String, String> hashMap = (HashMap<String, String>) l.getItemAtPosition(position);
keyword = hashMap.get("routeCode");
positions = position;
if(position == 0 ){
}else if(position != 1){
Intent showContent = new Intent(v.getContext(),SalesRouteDevitionActivity.class);
Bundle bundle = new Bundle();
bundle.putString("RouteCode", keyword);
showContent.putExtras(bundle);
getParent().startActivityForResult(showContent, 5);
}else{
Intent intent = new Intent(SalesRouteActivity.this, ListRetailerActivity.class);
Bundle bundle = new Bundle();
bundle.putString("RouteName", keyword);
intent.putExtras(bundle);
View view = SalesActivityGroup.group.getLocalActivityManager().startActivity("", intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
SalesActivityGroup.group.replaceView(view);
}
}
@Override
public void onBackPressed() {
SalesActivityGroup.group.back();
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public ArrayList<SalesRoutes> getSalesRoute(){
DBAdapter dbAdapter = DBAdapter.getDBAdapterInstance(this);
try {
dbAdapter.createDataBase();
} catch (IOException e) {
Log.i("*** select ",e.getMessage());
}
dbAdapter.openDataBase();
String sql = "SELECT RouteCode, Description, OutletsAttached " +
"FROM WMRoute " +
"WHERE ActiveStatus = '1' AND RouteDefaultExecutive = ? AND BusinessUnit = ? AND TerritoryCode = ? " +
"ORDER BY RouteCode ";
String[]d = new String[]{strExecutive,strBusinessUnit,strTerritoryCode};
ArrayList stringList = dbAdapter.selectRecordsFromDBList(sql, d);
dbAdapter.close();
ArrayList<SalesRoutes> salesRoutesList = new ArrayList<SalesRoutes>();
for (int i = 0; i < stringList.size(); i++) {
ArrayList<Object> arrayList = (ArrayList<Object>) stringList.get(i);
ArrayList<Object> list = arrayList;
SalesRoutes salesRoutes = new SalesRoutes();
try {
salesRoutes.setRouteCode((String) list.get(0));
salesRoutes.setDescription((String) list.get(1));
salesRoutes.setOutlets((String)list.get(2));
} catch (Exception e) {
Log.i("***" + SalesRouteActivity.class.toString(), e.getMessage());
}
salesRoutesList.add(salesRoutes);
}
return salesRoutesList;
}
}
可能是我ActivityGroups正在重新创建时再次标签之间切换 因此,集团希望创建只有一次,继续当我的选项卡之间进行切换
probably my ActivityGroups are being created again and again when you switch between tabs So groups want to create only once and resumed when i switch between tabs
每个屏幕的详细信息/内容从数据库中获取。
Every screen details/contents getting from database..
我面对这个问题,超过2天....请帮助我。 请帮我在这....
I am facing this issue more than 2 days....Please help me. Please help me on this....
在此先感谢.....
Thanks in advance.....
推荐答案
感谢所有;
在那里,我MainActivity是问题。
There were issue in my MainActivity.
tabHost = getTabHost();
TabHost.TabSpec spec;
Intent intent;
intent = new Intent().setClass(this, SalesActivityGroup.class);
spec = getTabHost().newTabSpec("Sales").setIndicator("Sales",getResources().getDrawable(R.drawable.ic_tab_artists_grey)).setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, SettingActivityGroup.class);
spec = getTabHost().newTabSpec("Admin").setIndicator("Admin",getResources().getDrawable(R.drawable.admin)).setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, SettingActivityGroup.class);
spec = getTabHost().newTabSpec("Setting").setIndicator("Setting",getResources().getDrawable(R.drawable.ic_tab_artists_grey)).setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, SettingActivityGroup.class);
spec = getTabHost().newTabSpec("Inquiry").setIndicator("Inquiry",getResources().getDrawable(R.drawable.ic_tab_artists_grey)).setContent(intent);
tabHost.addTab(spec);
tabHost.setCurrentTab(0);
tabHost.setMinimumHeight(18);
tabHost.setFadingEdgeLength(5);
tabHost.setFocusable(true);
tabHost.requestFocus();
tabHost.setFadingEdgeLength(5);
}
}
和我同意@Vaibhav贾尼@Dharmendra @Suri,我错过了onKey pressed()中的所有活动。
And I agree @Vaibhav Jani @Dharmendra @Suri, I missed that onKeyPressed() in all Activity.
这篇关于使用活动组标签之间的切换是想显示最后一项活动 - 选项卡的ActivityGroup的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!