电商项目实战 搜索记录+清空+数据库 自定义view

主页面

	 initView();//初始化控件
	 
	 dataBase = new FlowDataBase(this);
     List<String> list = dataBase.query();
     for (int i = 0; i < list.size(); i++) {
        MainActivity.this.list.add(list.get(i));
        TextView textView = new TextView(MainActivity.this);
        mMainFlow1.addView(textView,params);
    }

    mMainButt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
            String text = mMainEdit.getText().toString();
            list.add(text);
            TextView textView = new TextView(MainActivity.this);
            textView.setText(list.get(list.size()-1));
            textView.setTextSize(20);
            textView.setPadding(10,10,10,10);
            //数据库和布局页面的添加
            dataBase.insert(text);
            mMainFlow1.addView(textView, params);
        }
    });
    mBtnClear.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //数据库和布局页面的删除
            mMainFlow1.removeAllViews();
            dataBase.delete();
        }
    });

自定义的view

public Flow(@NonNull Context context) {
    super(context);
}

public Flow(@NonNull Context context, @Nullable AttributeSet attrs) {
    super(context, attrs);
}

public Flow(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
}

@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public Flow(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
    super(context, attrs, defStyleAttr, defStyleRes);
}

@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
    super.onLayout(changed, left, top, right, bottom);
    //获取控件宽度
    int width = getWidth();
    //定义常量行数
    int row=0;
    //子控件左边的坐标
    int disWidth=20;
    for (int i = 0; i <getChildCount() ; i++) {
        View view = getChildAt(i);
        //子控件的宽度
        int viewWidth = view.getWidth();
        //子控件的高度
        int viewHeight = view.getHeight();
        if(disWidth+viewWidth>width){
            row++;
            disWidth=20;
        }
        view.layout(disWidth,row*viewHeight,viewWidth+disWidth,viewHeight*(row+1));
        disWidth+=viewWidth;
    }
    }    

数据库

private final SQLiteDatabase db;

public FlowDataBase(Context context) {
    super(context, "flow.db", null, 1);
     db = getWritableDatabase();
}

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("create table search (id integer primary key autoincrement,keys text)");
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}
public void insert(String keys){
    ContentValues values = new ContentValues();
    values.put("keys",keys);
    db.insert("search",null,values);
}
public void delete(){
    db.delete("search",null,null);
}
public List<String> query(){
    Cursor cursor = db.query("search", null, null, null, null, null, null);
    List<String> list=new ArrayList<>();
    while (cursor.moveToNext()){
        String keys = cursor.getString(cursor.getColumnIndex("keys"));
        list.add(keys);
    }
    return list;
}

猜你喜欢

转载自blog.csdn.net/qq_43667718/article/details/84657175