[Android流水化開發]工序3:如何增加點擊事件,將各個頁面連接在一起?

步驟

  1. 在xml中對需要操作的組件添加id標識。常見標識如下:
  • 輸入組件,如input_phone
  • 按鈕組件,如btn_login(工序3只處理這一類組件)
  • 信息組件,如show_title
  • 容器組件,如contain_title
  1. 透過ButterKnife Zelezny將 id 映射為 java 組件、將btn映射為點擊方法。

  2. 用butterfork代替butterknife。

  • butterfork.Bind; 替換 butterknife.Bind
  • butterfork.OnClick 替換 butterknife.OnClick
  • B.id.替換R.id.
  • 刪除ButterKnife的相關代碼。如:ButterKnife.bind(this, rootView);ButterKnife.unbind(this);
  1. 添加按鈕組件的點擊事件。
@OnClick(B.id.btn_forget_pass)
public void forgetPass(){
        DevUtil.showInfo(getActivity(), "跳轉忘記密碼頁面");
}
@OnClick(B.id.btn_login)
public void login(){
        DevUtil.showInfo(getActivity(), "登錄");
}
@OnClick(B.id.btn_register)
public void register(){
        DevUtil.showInfo(getActivity(), "跳轉注冊頁面");
}
  1. 添加頁面跳轉代碼
@OnClick(B.id.btn_login)
public void login(){
        DevUtil.showInfo(getActivity(), "模擬登錄");
        IntentUtil.gotoActivity(getActivity(), MainActivity.class);
}
@OnClick(B.id.btn_register)
public void register(){
        IntentUtil.gotoActivity(getActivity(), RegisterActivity.class);
}

常用代碼片段

一、啟動頁LaunchFragment

public class LaunchFragment extends BaseFragment {

    private long mLaunchViewDisplayTimeLength = 1000L; //啟動頁顯示的時間
    @Override
    public int getLayoutId() {
        return R.layout.fragment_launch;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = super.onCreateView(inflater, container, savedInstanceState);

        configLaunchView();
        return rootView;
    }
    /**
     * 配置啟動界面
     */
    public void configLaunchView() {


        SimpleSafeTask<Void> waitLaunchViewDismissedTask = new SimpleSafeTask<Void>(
                getActivity()) {

            @Override
            protected Void doInBackgroundSafely() throws Exception {
                Thread.sleep(mLaunchViewDisplayTimeLength);
                return null;
            }

            @Override
            protected void onPostExecuteSafely(Void resultInfo, Exception e) {
                super.onPostExecuteSafely(resultInfo, e);
                if(DataManager.isLogined()){
                    IntentUtil.gotoActivity(getActivity(), MainActivity.class);
                }
                else{
                    IntentUtil.gotoActivity(getActivity(), LoginActivity.class);
                }
                getActivity().finish();
            }

        };
        waitLaunchViewDismissedTask.execute();
    }
}

二、列表數據對應的頁面

public class NearbyFragment extends AbsListViewNetFragment<TestModel> {
    @Bind(B.id.tv_title)
    TextView mTvTitle;
    @Bind(B.id.net_list)
    GridView mGvNearby;

    @Override
    public int getLayoutId() {
        return R.layout.fragment_nearby;
    }

    @Override
    protected ListNetResultInfo<TestModel> onDoInBackgroundSafely(int i, int i1) {
        return TestModel.getListNetResultInfo(100);
    }

    @Override
    public int getItemTextViewResourceId() {
        return R.id.tv_test;
    }

    @Override
    public int getItemLayoutId() {
        return R.layout.item_nearby_detail;
    }

    @Override
    public View bindView(int i, View view, ViewGroup viewGroup) {
        return view;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = super.onCreateView(inflater, container, savedInstanceState);
        mGvNearby.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                // TODO: 16/8/5 跳轉詳情列表 
                DevUtil.showInfo(getActivity(), "item 點擊");
            }
        });
        return rootView;
    }


    @OnClick(B.id.btn_goback)
    public void exit() {
        super.exit();
    }
}

【Android流水化開發】相關文章

  1. 理念·Android端開發效率如何提升4488倍?
  2. 工序1:初始化項目框架
  3. 工序2:繪制xml
  4. 工序3:如何增加點擊事件,將各個頁面連接在一起?
  5. 工序4:封裝數據加載、上傳接口,并顯示、跳轉
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容