第二次迭代感想

这次我认领的任务是主界面功能的实现,这个项目相对前一个认领项目稍稍有些难度,所以花的时间和精力业更多了,而且有些地方跟本组同学发生了思想上擦出了火花,但是最后我们讨论并解决了。

这是这次我任务的java代码:

public class MainActivity extends ActionBarActivity implements View.OnClickListener{

private TextView txt_waimai;    private TextView txt_find;    private TextView txt_order;    private FrameLayout ly_content;

private HomeFragment homeFragment;    private FindFragment findFragment;    private OrderFragment orderFragment;    private android.app.FragmentManager fManager ;

private Toolbar toolbar;    private DrawerLayout mDrawerLayout;    private ActionBarDrawerToggle mDrawerToggle;    private ListView lvLeftMenu;    private String[] lvs = {"账户信息", "我的余额", "我的收藏", "服务中心", "系统设置"};//可以放入String中,在拿取出来    private ArrayAdapter arrayAdapter;

private ActionBar actionBar ;

@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);

fManager = getFragmentManager();        bindViews();        txt_waimai.performClick();   //模拟一次点击,既进去后选择第一项

findViews(); //获取控件        toolbar.setTitle("Foodie");//设置Toolbar标题        toolbar.setTitleTextColor(Color.parseColor("#FFFFFF")); //设置标题颜色//        actionBar= getActionBar();        setSupportActionBar(toolbar) ;//支持ActionBar

//创建返回键,并实现打开关/闭监听        mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar,                R.string.open_drawer, R.string.close_drawer) {            @Override            public void onDrawerOpened(View drawerView) {                super.onDrawerOpened(drawerView);            }            @Override            public void onDrawerClosed(View drawerView) {                super.onDrawerClosed(drawerView);            }        };        mDrawerToggle.syncState();        mDrawerLayout.setDrawerListener(mDrawerToggle);        //设置菜单列表,写一个listView布局将其优化        arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, lvs);        lvLeftMenu.setAdapter(arrayAdapter);

lvLeftMenu.setOnItemClickListener(new DrawerItemClickListener());

//        setStatusBar();//设置沉浸式状态栏,5.0.1系统有点Bug

toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {            @Override            public boolean onMenuItemClick(MenuItem item) {                switch (item.getItemId()){                    case R.id.action_search:                        startActivity(new Intent(getApplicationContext(), Searchctivity.class));                        break;                    case R.id.toolBar_btn_login:                        startActivity(new Intent(getApplicationContext(),LoginActivity.class));                        break;                }                return false;            }        });

}

//将ActionBar添加进来    @Override    public boolean onCreateOptionsMenu(Menu menu) {        MenuInflater inflater = new MenuInflater(this) ;        inflater.inflate(R.menu.activity_main,menu);        return super.onCreateOptionsMenu(menu);    }

@Override    public boolean onOptionsItemSelected(MenuItem item) {        if (item.isCheckable()){            item.setChecked(true);        }        return super.onOptionsItemSelected(item);    }

//UI组件初始化与事件绑定    private void bindViews() {        txt_waimai = (TextView) findViewById(R.id.txt_waimai);        txt_find = (TextView) findViewById(R.id.txt_find);        txt_order = (TextView) findViewById(R.id.txt_order);

ly_content = (FrameLayout) findViewById(R.id.ly_content);

txt_waimai.setOnClickListener(this);        txt_find.setOnClickListener(this);        txt_order.setOnClickListener(this);    }

//重置所有文本的选中状态    private void setSelected(){        txt_waimai.setSelected(false);        txt_find.setSelected(false);        txt_order.setSelected(false);    }

//隐藏所有Fragment    private void hideAllFragment(FragmentTransaction fragmentTransaction){        if(homeFragment != null)fragmentTransaction.hide(homeFragment);        if(findFragment != null)fragmentTransaction.hide(findFragment);        if(orderFragment != null)fragmentTransaction.hide(orderFragment);    }

@Override    public void onClick(View v) {        FragmentTransaction fTransaction = fManager.beginTransaction();        hideAllFragment(fTransaction);        switch (v.getId()){            case R.id.txt_waimai:                setSelected();                txt_waimai.setSelected(true);                if(homeFragment == null){                    homeFragment = new HomeFragment();                    fTransaction.add(R.id.ly_content,homeFragment);                }else{                    fTransaction.show(homeFragment);                }                break;            case R.id.txt_find:                setSelected();                txt_find.setSelected(true);                if(findFragment == null){                    findFragment = new FindFragment();                    fTransaction.add(R.id.ly_content,findFragment);                }else{                    fTransaction.show(findFragment);                }                break;            case R.id.txt_order:                setSelected();                txt_order.setSelected(true);                if(orderFragment == null){                    orderFragment = new OrderFragment();                    fTransaction.add(R.id.ly_content,orderFragment);                }else{                    fTransaction.show(orderFragment);                }                break;        }        fTransaction.commit();    }

/**     * ListView上的Item点击事件     *     */    private class DrawerItemClickListener implements ListView.OnItemClickListener {        @Override        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {            selectItem(position);        }    }

/**     * 切换Item点击显示的页面     *     * @param position     */    private void selectItem(int position) {        switch (position){            case 0:                startActivity(new Intent(this,AccountActivity.class));                break;            case 1:

break;            case 2:

break;            case 3:

break;            case 4:                startActivity(new Intent(this,SettingActivity.class));                break;            default:                break;        }    }

/**     * 获取控件     */    private void findViews() {        toolbar = (Toolbar) findViewById(R.id.tl_custom);        mDrawerLayout = (DrawerLayout) findViewById(R.id.dl_left);        lvLeftMenu = (ListView) findViewById(R.id.lv_left_menu);    }

/**     * 设置沉浸式状态栏,需4.4版本以上     *///    protected void setStatusBar() {//        StatusBarUtil.setColor(this, getResources().getColor(R.color.colorPrimary));//        StatusBarUtil.setColorForDrawerLayout(this, (DrawerLayout) findViewById(R.id.dl_left), getResources()//                .getColor(R.color.colorPrimary));//    }

/**     * 双击退出,根据时间来判断     */    long waitTime = 2000;    long touchTime = 0;    @Override    public boolean onKeyDown(int keyCode, KeyEvent event) {        if(event.getAction() == KeyEvent.ACTION_DOWN && KeyEvent.KEYCODE_BACK == keyCode) {            long currentTime = System.currentTimeMillis();            if((currentTime-touchTime)>=waitTime) {                //让Toast的显示时间和等待时间相同                Toast.makeText(this, "再按一次退出", Toast.LENGTH_SHORT).show();                touchTime = currentTime;            }else {                System.exit(0);//会跳屏,关闭时会出现黑屏,需要优化,不能用finish()            }            return true;        }        return super.onKeyDown(keyCode, event);    }}
时间: 2024-10-19 14:21:14

第二次迭代感想的相关文章

第二次迭代目标完成情况及感想

第二次迭代目标完成情况如下: 首先是主界面的设计以及功能的实现 主要XML代码是: ......... <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/tl_custom&qu

Team--时代团队第二次迭代分数

这是一篇简介的日志. 它关于二轮迭代Team--时代团队6名成员的分数分配. 每名成员的工作内容与之前的任务分工相同,即,大家都非常好的完成了计划的工作. 按照最初设定的分数分配原则,在今晚大家吃全家桶之前,我们进行了慎重的分数互评. 最终每名队员得分如下: 成员 互评平均得分 满分 二轮迭代得分 一轮迭代得分    总分(平均分)    苏林东 61.7 95 89 92 李帅 63.6 89 95 92 吴威 61.5 85 93 89 安娜 58.3 87 89 88 王鑫楠 59.5 8

第一次迭代感想

第一次迭代感想写的有点晚,但是不妨碍我的想法. 这次我们的项目跟前几次实训有点类似,但是又有区别.组长分配任务,组员认领任务. 第一次的迭代目标我认领的任务是登录界面的设计.因为有之前实训的基础,所以这次的这个任务还可以,没用多久就写出来了,但是还有不足,需要后续完善. 这是java代码: public class LoginActivity extends AppCompatActivity { private EditText username; private EditText passw

Ultimate Chicken Horse GameProject第二次迭代成果文档

基于上一次的迭代中的数据结构我们补充了UML图.用例图及状态图. 用例图:           选择游戏地图:玩家可以在本地游戏界面将角色移动到地图门口并按下E进入地图. 进行游戏用例: 选择并摆放道具: 每个玩家可以在对战开始时从道具库中选择一个道具摆放至游戏地图内. 控制角色:玩家可以通过键盘操作人物移动,包括左右走动,跑步, 跳跃,墙壁下滑,蹬墙跳. 角色死亡: 当玩家碰撞到造成伤害的陷阱或掉出地图边界时,角色死亡. 抵达终点: 当玩家碰撞到终点旗帜时, 角色胜利. 选择游戏模式用例: 本

读《大道至简》-第二章之感想

很多时候,很多同学和老师都要讲,都要强调,人必须要勤奋,要学会坚持.但是,我看了<大道至简>第二章之后,觉得有些时候,往往不是勤奋就能够解决问题的,懒人往往就是造就天才的温床.      很简单,因为懒人往往不会想在一个方面去默默耕耘,明明知道这样子下去,事情不会有什么起色,倒不如去找找捷径.我不一定是这类懒人的典型,但是某些时候自己真的发觉再努力于某件毫无起色的事情,倒不如我去想想有没有什么其他更省事的方法去解决.懒人就是这样子,不希望自己做白费力气的事情.天才也是这样子造就的,通过对内里的

项目初尝试——α迭代感想

设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的项目名称是基于pytorch图像识别的enas,从名字上就能了解到这是一个比较偏向于技术的项目,属于一种科研性项目.软件最终只需要实现简单的图像识别即可,但是难点在于要实现enas优化,并且需要是在pytorch框架下运用CNN网络进行实现.从项目名称来说这个项目的定义还是很清楚的. 在典型用户和典型应用场景的描述中,我们并没有指定很明确很具体的用户,几乎是所有可以使用小程序的,需要进行图

团队项目第二轮迭代要求

有团队反映没有记住要求,我在这里再列出来一下. 在TFS中签入Alpha版本发布之后最新的稳定版本 所有学霸相关系统都要用起来,产生实际用户 所有App应该报告每日实际用户(可以考虑集成类似于友盟等活动用户统计等模块),即使只有团队内部的人员使用也要报告 Daily build,每天自动构建软件,并运行一些核心的测试 测试覆盖率,最后发布是将会检查软件的每一个功能.测试用例及所覆盖的代码.

第三次迭代感想

布局: <LinearLayout        android:layout_width="match_parent"        android:layout_height="match_parent"        android:orientation="vertical"> <RelativeLayout        android:layout_width="match_parent"    

第二周学习感想

自从第一周在睡眠中度过之后,这个星期的精神好多了. 时间太快,还是我走的太慢,今天已经是第三周的第一天了,回想上一周,似乎没学到什么知识,把小学四则随机运算再一次扩展之后,代码量达到了600多行,上星期也开始自学了安卓,PS,AE,PR.虽然这个过程遇到了很多问题,很枯燥,但感觉每一天都很充实.而且感觉自己的动手能力也在加强,写代码遂心应手了,哈哈哈PS:自恋一下!原本之前还在犹豫自己毕业了要找一份IT的工作,还是考研或者是考公务员,这个星期过去之后,认真的审视一下自己的兴趣和特点,似乎毕业了找