public void onClick(View v) { String componname = finalHolder.componname.getText().toString(); String username = MainActivity.loginusername; FormBody.Builder parms = new FormBody.Builder(); parms.add("username",username); parms.add("componname",componname); final Call call = okhttputil.request_post("/order/buycompon", parms); new Thread(new Runnable() { @Override public void run() { try { String string = call.execute().body().string(); JSONObject jsonObject = new JSONObject(string); mark = jsonObject.getString("code").equals("200"); handler.post(udpUIRunnable); }catch (Exception e){ e.printStackTrace(); } } }).start(); } }); return convertView;
时间: 2024-02-10 18:19:57 浏览: 64
这段代码是一个点击事件的处理函数,当用户点击“购买”按钮时,会执行这个函数。函数中会获取该商品的名称和当前登录用户的用户名,并通过OkHttp库向服务器发送一个POST请求,请求的URL为“/order/buycompon”,请求参数为当前登录用户的用户名和该商品的名称。在请求的回调函数中,会将返回的JSON字符串解析成一个JSONObject对象,并判断其中的“code”字段是否为“200”,如果是,则将mark标记为true,并通过handler.post()方法来触发一个UI更新任务。整个过程是在一个新的线程中执行的,不会阻塞主线程。最后,函数返回一个convertView对象,即列表项的视图对象。
相关问题
String componname = finalHolder.componname.getText().toString();
这段代码的作用是从界面上获取一个名为componname的文本框中的文本内容,并将其赋值给一个名为componname的字符串变量。具体来说,finalHolder是一个ViewHolder对象,其中包含了一个名为componname的文本框控件。通过finalHolder.componname.getText()方法可以获取到该文本框中的文本内容,再通过toString()方法将其转换为字符串类型,最终将其赋值给componname变量。这种操作通常用于获取用户在界面上输入的信息,以便后续进行处理和存储。
public View getView(int position, View convertView, final ViewGroup parent) { Holder holder = null; if (convertView == null){ convertView = layoutInflater.inflate(R.layout.componlist_item,null); holder = new Holder(); holder.componname = convertView.findViewById(R.id.All_Compon_list_item_componname); holder.componbrand = convertView.findViewById(R.id.All_Compon_list_item_componbrand); holder.componprice = convertView.findViewById(R.id.All_Compon_list_item_componprice); holder.buycompon = convertView.findViewById(R.id.All_Compon_list_item_buy); convertView.setTag(holder); }else { holder = (Holder) convertView.getTag(); } componBean componBean = arrpayinf.get(position); holder.componname.setText(componBean.getComponname()); holder.componbrand.setText(componBean.getBrand()); holder.componprice.setText("价格:"+componBean.getPrice().toString()); final View finalConvertView = convertView; final Holder finalHolder = holder; holder.buycompon.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String componname = finalHolder.componname.getText().toString(); String username = MainActivity.loginusername; FormBody.Builder parms = new FormBody.Builder(); parms.add("username",username); parms.add("componname",componname); final Call call = okhttputil.request_post("/order/buycompon", parms); new Thread(new Runnable() { @Override public void run() { try { String string = call.execute().body().string(); JSONObject jsonObject = new JSONObject(string); mark = jsonObject.getString("code").equals("200"); handler.post(udpUIRunnable); }catch (Exception e){ e.printStackTrace(); } } }).start(); } }); return convertView;
这是一个 Android 中的 ListView 的 Adapter 的 getView 方法的实现,用于展示一个组件列表中的每一个组件的信息。具体来说,对于每一个组件,该方法从组件列表中获取对应位置的组件信息,然后使用 Holder 类来存储该组件的名称、品牌和价格等信息,并将这些信息填充到一个自定义的布局文件 R.layout.componlist_item 中,最后返回该布局文件作为该组件在 ListView 中的显示结果。此外,对于每一个组件,还有一个“购买”按钮,当用户点击该按钮时,该方法会向服务器发送购买请求,并在请求成功后更新 UI。
阅读全文