搜索页面到商品列表

本文介绍了一个基于Android的应用程序,该程序实现了用户搜索商品并显示搜索历史的功能。通过MainActivity进行商品搜索,NeirongActivity展示搜索结果,并在XiangqingActivity中详细查看商品详情。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//MainActivity

public class MainActivity extends AppCompatActivity {
    private String mNames[] = {
            "硬盘螺丝","老人机","海尔冰箱",
            "电视机","旅游用品","家备小电器",
            "服饰"
    };
    private flow flowLayout;
    private EditText ed;
    private Button sousuo;
    private TextView lishi;
    private ListView listView;
    private Button qing;
    private Add dao;
    private List<String> sel;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initChildViews();
        //获取控件
        ed = (EditText) findViewById(R.id.et);
        sousuo = (Button) findViewById(R.id.sousuo);
        lishi = (TextView) findViewById(R.id.lishi);
        listView = (ListView) findViewById(R.id.lv);
        qing = (Button) findViewById(R.id.qingkong);
        dao = new Add(MainActivity.this);

      //查询数据路
        sel = dao.sel();
        if(sel.size()>0){
            ArrayAdapter<String> stringArrayAdapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, android.R.id.text1, sel);
            listView.setAdapter(stringArrayAdapter);
            lishi.setVisibility(View.VISIBLE);
            qing.setVisibility(View.VISIBLE);
        }

        //点击搜索
        sousuo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //获取去输入框信息
                String s = ed.getText().toString();
                //判断输入框不为空
                if(!s.equals("")){
                    dao.add(s);
                    ed.setText("");
                    //展示数据库
                    sel = dao.sel();
                    if(sel.size()>0){
                        ArrayAdapter<String> stringArrayAdapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, android.R.id.text1, sel);
                        listView.setAdapter(stringArrayAdapter);
                        lishi.setVisibility(View.VISIBLE);
                        qing.setVisibility(View.VISIBLE);
                    }
                    Intent intent = new Intent(MainActivity.this, NeirongActivity.class);
                    intent.putExtra("kuang",s);
                    startActivity(intent);
                }else{
                    Toast.makeText(MainActivity.this,"搜索框为空",Toast.LENGTH_SHORT).show();
                }
            }
        });

        //点击清空数据
        qing.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                dao.del();
                //展示数据库
                sel = dao.sel();

                    ArrayAdapter<String> stringArrayAdapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, android.R.id.text1, sel);
                    listView.setAdapter(stringArrayAdapter);
                    lishi.setVisibility(View.INVISIBLE);
                    qing.setVisibility(View.INVISIBLE);
            }
        });
    }

    private void initChildViews() {
        flowLayout = (flow) findViewById(R.id.ffff);
        ViewGroup.MarginLayoutParams lp = new ViewGroup.MarginLayoutParams(
                ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        lp.leftMargin = 5;
        lp.rightMargin = 5;
        lp.topMargin = 5;
        lp.bottomMargin = 5;
        for(int i = 0; i < mNames.length; i ++){
            TextView view = new TextView(this);
            view.setText(mNames[i]);
            view.setTextColor(Color.WHITE);
            view.setBackgroundDrawable(getResources().getDrawable(R.drawable.textview_bg));
            flowLayout.addView(view,lp);
        }
    }
}


//NeirongActivity

public class NeirongActivity extends AppCompatActivity implements Pjiekou, Jiekou {
    private ImageView fan;
    private RecyclerView res;
    private Mypresent mypresent;
    private CheckBox grid;
    boolean flag=false;
    private List<Datadatadbean.DataBean> data;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_neirong);
        fan = (ImageView) findViewById(R.id.fan);
        res = (RecyclerView) findViewById(R.id.res);
        grid = (CheckBox) findViewById(R.id.grid);
        grid.setChecked(flag);
        Intent intent = getIntent();
        String kuang = intent.getStringExtra("kuang");
        mypresent = new Mypresent(this);
        mypresent.geturl("https://www.zhaoapi.cn/product/searchProducts?keywords="+ URLEncoder.encode(kuang)+"&page=1"+"&source=android");

        fan.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View view) {
             finish();
         }
     });
}

    @Override
    public void chneggong(String json) {
        Gson gson = new Gson();
        Datadatadbean js = gson.fromJson(json, Datadatadbean.class);
        data = js.getData();
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                //适配器 控制器
                res.setLayoutManager(new LinearLayoutManager(NeirongActivity.this,LinearLayoutManager.VERTICAL,false));
                LinAdapter linAdapter = new LinAdapter(data, NeirongActivity.this);
                linAdapter.getthis(NeirongActivity.this);
                res.setAdapter(linAdapter);
            }
        });

         grid.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
             @Override
             public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
                 if(flag){
                     runOnUiThread(new Runnable() {
                         @Override
                         public void run() {
                             //适配器 控制器
                             res.setLayoutManager(new LinearLayoutManager(NeirongActivity.this,LinearLayoutManager.VERTICAL,false));
                             LinAdapter linAdapter = new LinAdapter(data, NeirongActivity.this);
                             res.setAdapter(linAdapter);
                             linAdapter.getthis(NeirongActivity.this);
                         }
                     });
                     grid.setChecked(false);
                     flag=grid.isChecked();
                 }else{
                     runOnUiThread(new Runnable() {
                         @Override
                         public void run() {
                             //适配器 控制器
                             res.setLayoutManager(new StaggeredGridLayoutManager(2, OrientationHelper.VERTICAL));
                             GridAdapter linAdapter = new GridAdapter(data, NeirongActivity.this);
                             res.setAdapter(linAdapter);
                             linAdapter.getthis(NeirongActivity.this);
                         }
                     });
                     grid.setChecked(true);
                     flag=grid.isChecked();
                 }
             }
         });
    }

    @Override
    public void click(int postion) {
        Intent intent = new Intent(NeirongActivity.this, XiangqingActivity.class);
        intent.putExtra("pid",data.get(postion).getPid());
        startActivity(intent);
    }
}


//XiangqingActivity

public class XiangqingActivity extends AppCompatActivity  {

    private XBanner xb;
    private TextView tel;
    private TextView price;
    private Button tian;
    private int uid;
    List<String> list=new ArrayList<>();
    private TextView head;
    private TextView yuan;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_xiangqing);
        xb = (XBanner) findViewById(R.id.xb);
        tel = (TextView) findViewById(R.id.tel);
        price = (TextView) findViewById(R.id.price);
        yuan = (TextView) findViewById(R.id.yuanprice);
        head = (TextView) findViewById(R.id.head);
        tian = (Button) findViewById(R.id.tianjia);
        Intent intent = getIntent();
        uid = intent.getIntExtra("pid", 0);

        info();
    }

    private void info() {
       // Toast.makeText(XiangqingActivity.this,""+uid,Toast.LENGTH_SHORT).show();
    OkUrl.doget("https://www.zhaoapi.cn/product/getProductDetail" + "?" + "pid=" + uid + "&source=android", new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {
            e.printStackTrace();
        }

        @Override
        public void onResponse(Call call, final Response response) throws IOException {
         if(response.isSuccessful()){
           runOnUiThread(new Runnable() {
               @Override
               public void run() {
                   String string = null;
                   try {
                       string = response.body().string();
                       Gson gson = new Gson();
                       Chabean chabean = gson.fromJson(string, Chabean.class);
                       Chabean.DataBean data = chabean.getData();

                       String[] split = data.getImages().split("\\|");
                       for (int i=0;i<split.length;i++){
                           list.add(split[i]);
                       }
                       xb.setmAdapter(new XBanner.XBannerAdapter() {
                           @Override
                           public void loadBanner(XBanner banner, View view, int position) {
                               ImageLoader.getInstance().displayImage(list.get(position), (ImageView) view, Imagbase.getDefaultOption());
                           }
                       });
                       xb.setData(list);

                       tel.setText(data.getTitle());
                       head.setText(data.getSubhead());
                       yuan.setText("原价:"+data.getPrice());
                       yuan.setPaintFlags(Paint.STRIKE_THRU_TEXT_FLAG);
                       price.setText("优惠价:"+data.getBargainPrice());

                   } catch (IOException e) {
                       e.printStackTrace();
                   }
               }
           });
         }
        }
    });

    //添加购物车
        tian.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                OkUrl.doget("https://www.zhaoapi.cn/product/addCart?uid=2834&pid=" + uid + "&source=android", new Callback() {
                    @Override
                    public void onFailure(Call call, IOException e) {
                        e.printStackTrace();
                    }

                    @Override
                    public void onResponse(Call call, final Response response) throws IOException {
                     if(response.isSuccessful()){
                         runOnUiThread(new Runnable() {
                             @Override
                             public void run() {
                                 try {
                                     String string = response.body().string();
                                     JSONObject js=new JSONObject(string);
                                     String msg = js.getString("msg");

                                     if(msg.equals("加购成功")){
                                       Toast.makeText(XiangqingActivity.this,msg,Toast.LENGTH_SHORT).show();
                                     }else{
                                         Toast.makeText(XiangqingActivity.this,msg,Toast.LENGTH_SHORT).show();
                                     }


                                 } catch (Exception e) {
                                     e.printStackTrace();
                                 }
                             }
                         });
                     }
                    }
                });
            }
        });
    }
}

 

//数据库  Add.java

public class Add  {
        private final Mysql db;

        public Add(Context ctx) {
            db = new Mysql(ctx);
        }
        /*
        * 添加
        * */
        public String add(String json){
            SQLiteDatabase database = db.getWritableDatabase();
            ContentValues values = new ContentValues();

            values.put("jj", json);
            database.insert("shuju", null, values);
            database.close();
            return null;
        }

        //查询
        public List<String> sel(){
            SQLiteDatabase cha = db.getReadableDatabase();
            List<String> list=new ArrayList<>();
            Cursor cursor = cha.rawQuery("select * from shuju", null);
            while(cursor.moveToNext()){
                String s = cursor.getString(1);
                list.add(s);
            }
            return list;
        }

        public void del() {
            SQLiteDatabase writableDatabase = db.getWritableDatabase();
            writableDatabase.execSQL("delete from shuju");
        }
    }


//mysql.java

public class Mysql extends SQLiteOpenHelper {
    public Mysql(Context context) {
        super(context, "sq.db", null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        //创建表
        sqLiteDatabase.execSQL("create table shuju(id integer primary key autoincrement,jj varchar(50) )");
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }
}



//JieKou.java

public interface Jiekou {
    void click(int postion);
}


//presenter文件夹下_PJiekou.java
public interface Pjiekou {
    void chneggong(String json);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值