開發一個好專案:二、actvity簡便跳轉,建立選單按鈕,正確使用fr
這篇文章是上一篇的繼續,你可以先看這篇: 框架地址 希望大家能多多star一下
首先我把我寫的這個首頁拿出來,這個首頁主要是有4個按鈕。
跳轉activity方法,將跳轉作為一個靜態函式,來處理,跳轉簡單,日後可以在這裡直接新增跳轉所需要的引數,減少程式碼改動量。方便美觀。推薦使用~
public static void start(Context context){
Intent intent = new Intent();
intent.setClass(context,HomeActivity.class);
context.startActivity(intent);
}
layout xml直接寫在一個方法裡,其實也沒啥太大用處
protected int layoutViewId() {
return R.layout.activity_home;
}
配置titlebar,我把titlebar做成一個類,裡面直接就能呼叫titlebar,還可以直接設定點選事件。
UToolBar uToolBar = new UToolBar();
uToolBar.setTitleId(R.string.takkyuu_home);
uToolBar.setNeedNavigate(false);
setToolBar(R.id.toolbar,uToolBar);
注意配置titlebar時候 xml裡必須有 titlebar的配置
底部選單使用方式,裡面採用的是字型圖表的配置,如果大家不知道的話,請看我的上一篇文章。
mBar= getView(R.id.bar);
//設定字型為 R.string.home3 字型的型別為 BottomBarTab.TYPE_FONT
mBar.addItem(new BottomBarTab(this,R.string.home3,BottomBarTab.TYPE_FONT)).
addItem(new BottomBarTab(this,R.string.tree,BottomBarTab.TYPE_FONT)).
addItem(new BottomBarTab(this,R.string.m_search,BottomBarTab.TYPE_FONT)).
addItem(new BottomBarTab(this,R.string.user,BottomBarTab.TYPE_FONT));
mBar.setOnClickItemMenu(new BottomBar.OnClickItemMenu() {
@Override
public void onClickItem(int nowPosition,int position) {
}
});
如何正確的載入fragment,我封裝好了一個ActivityUtils方法,裡面還有其他方法,大家可以看看,對fragment先進行查詢,如果沒有的話,再進行新增,提高的效能效率
HomeFragment homeFragment = ActivityUtils.getFragment(getSupportFragmentManager(),R.id.homeFrame,HomeFragment.newInstance());
如下貼出整個程式碼。
xml
activity~這個activity是繼承了我上一個文章裡寫的TBaseActivity
public class HomeActivity extends TBaseActivity implements TakkyuuBaseFragment.OnFragmentInteractionListener{
public static void start(Context context){
Intent intent = new Intent();
intent.setClass(context,HomeActivity.class);
context.startActivity(intent);
}
@Override
protected void startView(Bundle savedInstanceState) {
}
@Override
protected int layoutViewId() {
return R.layout.activity_home;
}
private final static String SELECT = "select";
BottomBar mBar;
Fragment temp;
@Override
protected void initView(final Bundle savedInstanceState) {
UToolBar uToolBar = new UToolBar();
uToolBar.setTitleId(R.string.takkyuu_home);
uToolBar.setNeedNavigate(false);
setToolBar(R.id.toolbar,uToolBar);
mBar= getView(R.id.bar);
mBar.addItem(new BottomBarTab(this,R.string.home3,BottomBarTab.TYPE_FONT)).
addItem(new BottomBarTab(this,R.string.tree,BottomBarTab.TYPE_FONT)).
addItem(new BottomBarTab(this,R.string.m_search,BottomBarTab.TYPE_FONT)).
addItem(new BottomBarTab(this,R.string.user,BottomBarTab.TYPE_FONT));
mBar.setOnClickItemMenu(new BottomBar.OnClickItemMenu() {
@Override
public void onClickItem(int nowPosition,int position) {
}
});
HomeFragment homeFragment = ActivityUtils.getFragment(getSupportFragmentManager(),R.id.homeFrame,HomeFragment.newInstance());
ConsFragment consFragment = ActivityUtils.getFragment(getSupportFragmentManager(),R.id.consFrame,ConsFragment.newInstance("3","2"));
SearchFragment searchFragment = ActivityUtils.getFragment(getSupportFragmentManager(),R.id.searchFrame,SearchFragment.newInstance());
PeopleFragment peopleFragment = ActivityUtils.getFragment(getSupportFragmentManager(),R.id.peopleFrame,PeopleFragment.newInstance());
//這是後續的MVP模式開發,後續我會繼續講解。
new HomePresenter(homeFragment,SysRepository.getInstance());
new PeoplePresenter(peopleFragment,SysRepository.getInstance());
new SearchPresenter(searchFragment,SysRepository.getInstance());
//螢幕翻轉,記錄狀態
if(savedInstanceState!=null){
mBar.setCurrentItem(savedInstanceState.getInt(SELECT));
}
}
//螢幕翻轉,記錄狀態
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putInt(SELECT,mBar.getmCurrentPosition());
super.onSaveInstanceState(outState);
}
//fragment與activity互動 後續會講解
@Override
public SFont onRightButtonFont(Integer res) {
String text = "";
if(res!=null){
text = getResources().getString(res);
}
SFont sFont = getView(R.id.toolbar_bar_right);
sFont.setText(text);
return sFont;
}
//fragment與activity互動 後續會講解
@Override
public void onTitleName(String title) {
setTitle(title);
}
//重寫退出按鈕處理函式。
@Override
public void onBackPressed() {
dialogOk("確定要退出麼", new DialogLinstener() {
@Override
public void confirm(Dialog dialog) {
dialog.dismiss();
HomeActivity.super.onBackPressed();
}
@Override
public void cancel(Dialog dialog) {
dialog.dismiss();
}
});
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3549/viewspace-2798146/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一個簡單的選單按鈕的實現 (轉)
- Android 點選按鈕跳轉Android
- 開發一個好專案:八、建立viewView
- 如何正確使用開源專案?
- [開發教程] 第17講:Bootstrap單選按鈕boot
- 單選多選按鈕
- 配置選單按鈕掃一掃
- Goland 開啟一個專案的正確姿勢GoLand
- 點選一個按鈕使其樣式發生變化,再點選另一個按鈕發生同樣變化,但上一個按鈕樣式復原
- radio 單選按鈕 選中多個
- 正確姿勢使用vue cli3建立專案Vue
- 以正確的方式開始一個 Django 1.4 專案Django
- 前端設計,確定按鈕正慢慢消失前端
- 使用Gradle建立一個最簡單的Spring Boot專案GradleSpring Boot
- 窗體(文字框,按鈕,單選按鈕,標籤)
- 一個簡單的Vue按鈕級許可權方案Vue
- 【Android】OnTouchListener的簡單使用,按鈕點選放大與縮小Android
- jQuery判斷一個radio單選按鈕是否被選中jQuery
- [開發教程]第23講:Bootstrap帶下拉選單的按鈕boot
- NX二次開發:一個DLL設定多個按鈕操作的方法
- JQuery統一複寫美化專案中所有radio單選按鈕樣式jQuery
- 舉兩個栗子:如何正確建立個人的機器學習專案集機器學習
- Java選擇框和單選按鈕Java
- 如何使用 Bootstrap class 向按鈕新增下拉選單boot
- 使用WPF建立炫亮按鈕
- 如何點選一個按鈕實現列印
- 點選按鈕彈出一個居中div
- iOS專案開發實戰——監聽對話方塊的按鈕點選事件iOS事件
- 用屬性動畫實現一個確認按鈕動畫
- 【轉載】[SAP ABAP開發技術總結]選擇螢幕——按鈕、單選核取方塊
- 【Lolttery】專案開發日誌 (三)維護好一個專案好難
- 表單Form簡介——表單按鈕ORM
- 快速開始構建一個簡單專案
- Tkinter (11) 選單按鈕部件 Menubutton
- 單選按鈕美化效果程式碼
- 面向Vue新人:寫一個簡單的倒數計時按鈕Vue
- js單選按鈕radio選中值JS
- Java GUI之建立一個只有兩個按鈕的框架JavaGUI框架