如何继承多个Activity?挺简单的,是不是我想多了

大洪 2014-08-05 08:52:20
1,我要使用TabHost,创建以三个Tab页面,需要继承TabActivity;
2,我在第一个Tab中有使用到了按钮的ListView,需要继承ListActivity ;
但是Java不支持extends多个,那么这中情况该怎么解决?
望大神们帮帮我。。。
...全文
609 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
大洪 2014-08-10
  • 打赏
  • 举报
回复
改了,根据http://l62s.iteye.com/blog/1675509写的文章,我修改了ListView的用法。 谢谢你们的回答,解决了我的问题。
逍遥笑 2014-08-07
  • 打赏
  • 举报
回复
我觉得你可以把你继承listactivity的这个类,作为一个fragment来替代,里面使用listview填充,放到一个tab中去,这样简单多了
jklwan 2014-08-07
  • 打赏
  • 举报
回复
用Tabhost,然后每个Tab是Fragment,Fragment可以继承ListFragment
gao_chun 2014-08-06
  • 打赏
  • 举报
回复
我感觉你说的没有影响啊,那你可否这样: private void setupViews() { setContentView(R.layout.activity_main); mDriverTextView = (TextView) View.inflate(this, R.layout.view_tab, null); mDriverTextView.setBackgroundResource(R.drawable.button_driver_selector); mOrderTextView = (TextView) View.inflate(this, R.layout.view_tab, null); mOrderTextView.setBackgroundResource(R.drawable.button_order_selector); mPriceTextView = (TextView) View.inflate(this, R.layout.view_tab, null); mPriceTextView.setBackgroundResource(R.drawable.button_price_selector); TabHost tabHost = getTabHost(); // 第一个tab Intent driverIntent = new Intent(ChauffeurActivity.this, DriverActivity.class); tabHost.addTab(tabHost.newTabSpec("0").setIndicator(mDriverTextView).setContent(driverIntent)); // 第二个tab Intent orderIntent = new Intent(ChauffeurActivity.this, ProfileActivity.class); tabHost.addTab(tabHost.newTabSpec("1").setIndicator(mOrderTextView).setContent(orderIntent)); // 第三个tab Intent priceIntent = new Intent(ChauffeurActivity.this,PriceActivity.class); tabHost.addTab(tabHost.newTabSpec("2").setIndicator(mPriceTextView).setContent(priceIntent)); // 设置监听器 tabHost.setOnTabChangedListener(this); tabHost.setCurrentTab(currentTabIndex); mTabHost = tabHost; } 然后点击Tab后每一个Activity都可以再次继承自己的方法 等等吧 注:目前Tabhost已经过时,底层实现存在一定的问题。目前看到大部分底部tab都是自定义的 可下载我共享的一份界面架构源码: http://blog.csdn.net/gao_chun/article/details/38315711
大洪 2014-08-06
  • 打赏
  • 举报
回复
引用 8 楼 lionfresh 的回复:
继承其中一个,然后实现另一个的接口。
嘿嘿,我学的不深,只是从别人的例子截取代码的,现在还没有本领实现接口。。。
大洪 2014-08-06
  • 打赏
  • 举报
回复
引用 9 楼 gao_chun 的回复:
[quote=引用 3 楼 dahongdahong 的回复:] [quote=引用 2 楼 gao_chun 的回复:] 我感觉你说的没有影响啊,那你可否这样: private void setupViews() { setContentView(R.layout.activity_main); mDriverTextView = (TextView) View.inflate(this, R.layout.view_tab, null); mDriverTextView.setBackgroundResource(R.drawable.button_driver_selector); mOrderTextView = (TextView) View.inflate(this, R.layout.view_tab, null); mOrderTextView.setBackgroundResource(R.drawable.button_order_selector); mPriceTextView = (TextView) View.inflate(this, R.layout.view_tab, null); mPriceTextView.setBackgroundResource(R.drawable.button_price_selector); TabHost tabHost = getTabHost(); // 第一个tab Intent driverIntent = new Intent(ChauffeurActivity.this, DriverActivity.class); tabHost.addTab(tabHost.newTabSpec("0").setIndicator(mDriverTextView).setContent(driverIntent)); // 第二个tab Intent orderIntent = new Intent(ChauffeurActivity.this, ProfileActivity.class); tabHost.addTab(tabHost.newTabSpec("1").setIndicator(mOrderTextView).setContent(orderIntent)); // 第三个tab Intent priceIntent = new Intent(ChauffeurActivity.this,PriceActivity.class); tabHost.addTab(tabHost.newTabSpec("2").setIndicator(mPriceTextView).setContent(priceIntent)); // 设置监听器 tabHost.setOnTabChangedListener(this); tabHost.setCurrentTab(currentTabIndex); mTabHost = tabHost; } 然后点击Tab后每一个Activity都可以再次继承自己的方法 等等吧 注:目前Tabhost已经过时,底层实现存在一定的问题。目前看到大部分底部tab都是自定义的 可下载我共享的一份界面架构源码: http://blog.csdn.net/gao_chun/article/details/38315711
但是我的程序已经继承了ListActivity,而你的例子是继承了LinearLayout 。程序不能一次继承多个,那怎么办?[/quote] 不要老想着去继承多个,有其他方法的。 还是不清楚你大概什么意思 。你的意思是你的第一个Activity已经继承了ListActivity吗 ?然后第一个Activity中也包含了你说的Tab ?[/quote] 是的,因为我是看到两个例子,分别继承了ListActivity和TabActivity,但是我又想把这两个例子放到一块。所以就。。很尴尬了。。。
大洪 2014-08-06
  • 打赏
  • 举报
回复
引用 7 楼 wh1990xiao2005 的回复:
TabHost好像已经是不建议使用了,可以考虑用ActionBar+ViewPager实现类似效果。
好的,我正在考虑是不是要更换了
gao_chun 2014-08-06
  • 打赏
  • 举报
回复
引用 3 楼 dahongdahong 的回复:
[quote=引用 2 楼 gao_chun 的回复:] 我感觉你说的没有影响啊,那你可否这样: private void setupViews() { setContentView(R.layout.activity_main); mDriverTextView = (TextView) View.inflate(this, R.layout.view_tab, null); mDriverTextView.setBackgroundResource(R.drawable.button_driver_selector); mOrderTextView = (TextView) View.inflate(this, R.layout.view_tab, null); mOrderTextView.setBackgroundResource(R.drawable.button_order_selector); mPriceTextView = (TextView) View.inflate(this, R.layout.view_tab, null); mPriceTextView.setBackgroundResource(R.drawable.button_price_selector); TabHost tabHost = getTabHost(); // 第一个tab Intent driverIntent = new Intent(ChauffeurActivity.this, DriverActivity.class); tabHost.addTab(tabHost.newTabSpec("0").setIndicator(mDriverTextView).setContent(driverIntent)); // 第二个tab Intent orderIntent = new Intent(ChauffeurActivity.this, ProfileActivity.class); tabHost.addTab(tabHost.newTabSpec("1").setIndicator(mOrderTextView).setContent(orderIntent)); // 第三个tab Intent priceIntent = new Intent(ChauffeurActivity.this,PriceActivity.class); tabHost.addTab(tabHost.newTabSpec("2").setIndicator(mPriceTextView).setContent(priceIntent)); // 设置监听器 tabHost.setOnTabChangedListener(this); tabHost.setCurrentTab(currentTabIndex); mTabHost = tabHost; } 然后点击Tab后每一个Activity都可以再次继承自己的方法 等等吧 注:目前Tabhost已经过时,底层实现存在一定的问题。目前看到大部分底部tab都是自定义的 可下载我共享的一份界面架构源码: http://blog.csdn.net/gao_chun/article/details/38315711
但是我的程序已经继承了ListActivity,而你的例子是继承了LinearLayout 。程序不能一次继承多个,那怎么办?[/quote] 不要老想着去继承多个,有其他方法的。 还是不清楚你大概什么意思 。你的意思是你的第一个Activity已经继承了ListActivity吗 ?然后第一个Activity中也包含了你说的Tab ?
lionfresh 2014-08-06
  • 打赏
  • 举报
回复
继承其中一个,然后实现另一个的接口。
萧文翰 2014-08-06
  • 打赏
  • 举报
回复
TabHost好像已经是不建议使用了,可以考虑用ActionBar+ViewPager实现类似效果。
大洪 2014-08-06
  • 打赏
  • 举报
回复
引用 5 楼 shen332401890 的回复:
Tab 并不一定要使用 TabActivity
那怎么做呢?大侠
顾小林 2014-08-06
  • 打赏
  • 举报
回复
Tab 并不一定要使用 TabActivity
大洪 2014-08-06
  • 打赏
  • 举报
回复
引用 1 楼 jeky198306 的回复:
可以看下android apidemos例子自带的源码,TabHost可以加activity
是的,原来是继承TabActivity的,但是我还想继承ListActivity。。。
大洪 2014-08-06
  • 打赏
  • 举报
回复
引用 2 楼 gao_chun 的回复:
我感觉你说的没有影响啊,那你可否这样: private void setupViews() { setContentView(R.layout.activity_main); mDriverTextView = (TextView) View.inflate(this, R.layout.view_tab, null); mDriverTextView.setBackgroundResource(R.drawable.button_driver_selector); mOrderTextView = (TextView) View.inflate(this, R.layout.view_tab, null); mOrderTextView.setBackgroundResource(R.drawable.button_order_selector); mPriceTextView = (TextView) View.inflate(this, R.layout.view_tab, null); mPriceTextView.setBackgroundResource(R.drawable.button_price_selector); TabHost tabHost = getTabHost(); // 第一个tab Intent driverIntent = new Intent(ChauffeurActivity.this, DriverActivity.class); tabHost.addTab(tabHost.newTabSpec("0").setIndicator(mDriverTextView).setContent(driverIntent)); // 第二个tab Intent orderIntent = new Intent(ChauffeurActivity.this, ProfileActivity.class); tabHost.addTab(tabHost.newTabSpec("1").setIndicator(mOrderTextView).setContent(orderIntent)); // 第三个tab Intent priceIntent = new Intent(ChauffeurActivity.this,PriceActivity.class); tabHost.addTab(tabHost.newTabSpec("2").setIndicator(mPriceTextView).setContent(priceIntent)); // 设置监听器 tabHost.setOnTabChangedListener(this); tabHost.setCurrentTab(currentTabIndex); mTabHost = tabHost; } 然后点击Tab后每一个Activity都可以再次继承自己的方法 等等吧 注:目前Tabhost已经过时,底层实现存在一定的问题。目前看到大部分底部tab都是自定义的 可下载我共享的一份界面架构源码: http://blog.csdn.net/gao_chun/article/details/38315711
但是我的程序已经继承了ListActivity,而你的例子是继承了LinearLayout 。程序不能一次继承多个,那怎么办?
jeky_zhang2013 2014-08-05
  • 打赏
  • 举报
回复
可以看下android apidemos例子自带的源码,TabHost可以加activity

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧