Android:实现安卓小程序-记事本(备忘录)的开发,面试建议

| 编辑模式-1 | 编辑模式-2 |

| — | — |

| 在这里插入图片描述 | 在这里插入图片描述 |

同时可以注意到两者编辑模式略有不同,在编辑模式-1下,可以做到修改,删除,背景色的设置,闹铃的添加,在编辑模式-2下仅仅能做到修改和删除。

左滑Note条目左滑部分关键代码:

首先需要新建一个滑动view类

public class MyScrollView extends ScrollView {

private ScrollViewListener scrollViewListener = null;

public MyScrollView(Context context) {

super(context);

}

public MyScrollView(Context context, AttributeSet attrs,

int defStyle) {

super(context, attrs, defStyle);

}

public MyScrollView(Context context, AttributeSet attrs) {

super(context, attrs);

}

public void setOnScrollListener(ScrollViewListener scrollViewListener) {

this.scrollViewListener = scrollViewListener;

}

@Override

protected void onScrollChanged(int x, int y, int oldx, int oldy) {

super.onScrollChanged(x, y, oldx, oldy);

if (scrollViewListener != null) {

if (oldy < y && ((y - oldy) > 15)) {

scrollViewListener.onScroll(y - oldy);

} else if (oldy > y && (oldy - y) > 15) {

scrollViewListener.onScroll(y - oldy);

}

}

}

//这一部分参考了github某个开源项目

public interface ScrollViewListener{//dy Y轴滑动距离

void onScroll(int dy);

}

}

设置完毕后在xml文件中即可设置应用:

<com.zc.memo.view.MyScrollView

adroid:id=“@+id/sv_main”

adroid:layout_width=“match_parent”

adroid:layout_height=“wrap_content”

adroid:background=“@drawable/border_bottom_null”>

<LinearLayout

adroid:layout_width=“match_parent”

adroid:layout_height=“wrap_content”

adroid:orientation=“vertical”>

<com.baoyz.swipemenulistview.SwipeMenuListView

adroid:id=“@+id/smlv_main”

adroid:layout_width=“match_parent”

adroid:layout_height=“match_parent”

adroid:descendantFocusability=“blocksDescendants”

adroid:divider=“@color/little_gray”

adroid:dividerHeight=“1dp”

adroid:background=“@null”

/>

</com.zc.memo.view.MyScrollView>

接着在activity中,初始化滑动窗口及滑动窗口菜单。

private void initView() {

data = new NoteManager(context).getNoteList();

smlvMain.setAdapter(new NoteAdapter(context,data));

smlvMain.setMenuCreator(new MySwipeMenuCreator(context));

smlvMain.setSwipeDirection(SwipeMenuListView.DIRECTION_LEFT);

new ListViewUtil().setListViewHeightBasedOnChildren(smlvMain);

svMain.setOnScrollListener(new MyScrollView.ScrollViewListener() {

@Override

public void onScroll(int dy) {

if (dy > 0) {

//下滑

showOrHideFab(false);

} else if (dy <= 0 ) {

//上滑

showOrHideFab(true);

}

}

});

viewListener();

emptyListCheck();

}

这里仅放上如何初始化滑动窗口的view,关于监听这个滑动窗口的逻辑代码在这里就不赘述了。

接下来讲一讲自定义NoteAdapter适配器来展示即使条目,首先继承BaseAdapter实现一个抽象类MyBaseAdapter该类可读取List列表的数据。

public abstract class MyBaseAdapter extends BaseAdapter {

Context context;

List data;

public MyBaseAdapter(Context context, List data) {

this.context = context;

this.data = data;

}

@Override

public Object getItem(int i) {

return null;

}

@Override

public long getItemId(int i) {

return 0;

}

@Override

public int getCount() {

if(data==null) return 0;

return data.size();

}

}

接着在编写NoteAdapter类继承上类,初始化view, 将Note条目的各项信息展示出来,其中还自定义了一个viewHolder类,方便对xml文件中的各项组件进行绑定编辑。

public class NoteAdapter extends MyBaseAdapter {

public NoteAdapter(Context context, List data) {

super(context, data);

}

@Override

public View getView(int i, View view, ViewGroup viewGroup) {

ViewHolder viewHolder;

if(view==null){

viewHolder=new ViewHolder();

LayoutInflater inflater = LayoutInflater.from(context);

view = inflater.inflate(R.layout.item_main_list, viewGroup, false);

viewHolder.tv_lv_mon

  • 11
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值