【问题标题】:Dynamic Inflated View to determine the position动态充气视图确定位置
【发布时间】:2016-12-22 12:17:41
【问题描述】:

我动态创建了一个LinearLayout,其中包含一个EditText 和一个添加按钮。

根据 Web 服务,LinearLayout 可能有 2、3 等按钮。

为了更好地理解,假设我有 3 个动态膨胀的 LinearLayoutsEditTexts 和一个添加按钮。

现在,我有三个 Web 服务:

  • 添加数据
  • 获取数据
  • 编辑数据

addData Web Service 用于将数据添加到 Web 服务器,当我们添加时,我们可以使用 getData webservice 检索数据。 在 addData Web 服务中,我通过 EditText 文本传递膨胀的 LinearLayout 的 positionIndex,同时点击添加按钮并使用 PositionIndex 获取数据。

[{"truckNo":"truck2_no","driverName":"driver2_name","driverMobile":"driver2_mobile","driverLicense":"driver2_license","placeOfIssue":"place2_of_issue","id":3,"positionIndex":1},{"truckNo":"ggg","driverName":"ggg","driverMobile":"vvh","driverLicense":" vv","placeOfIssue":"vvg","id":4,"positionIndex":3}]

如果 positionIndex 位于 getData Web 服务上,那么我可以编辑相应位置的数据。这意味着如果 positionIndex 为 3,那么我们只能编辑位置 3,正如我们在 JSON 中看到的那样。我可以编辑位置 1 和位置 3 膨胀LinearLayout 但对于位置 2,我必须使用 addData 网络服务。

问题: 当我从 web 服务中使用 getData 时,我无法区分哪些数据是可编辑的,以及我必须根据位置添加哪些数据。

点击添加按钮代码:

if(truckDetailList!=null && truckDetailList.size()>0) {
    for(int k=0;k<truckDetailList.size();k++) {
       Log.e("id--->>",""+(view1.getId()+1)+"");
       Log.e("truckDetailList-->>",""+truckDetailList.get(k).getTruck_index_position());

       int getTruckPosition=truckDetailList.get(k).getTruck_index_position();

       if(getTruckPosition==(view1.getId()+1)) {
           //Log.e("",""+truck_nmbr_autocmplt.getText().toString(), driverNames, driverMobiles, driverLicncs, plcOfIssues, truckDetailList.get(view1.getId()).getId(), truck_nmbr_autocmplt, driverName, driverMobile, driverLicnc, plcOfIssue)
           editTruckDetail(truck_nmbr_autocmplt.getText().toString(), driverNames, driverMobiles, driverLicncs, plcOfIssues, truckDetailList.get(k).getId(), truck_nmbr_autocmplt, driverName, driverMobile, driverLicnc, plcOfIssue);
           break;
       }
       else {
           postTruckDetailToServer(truck_nmbr_autocmplt.getText().toString(), driverNames, driverMobiles, driverLicncs, plcOfIssues, subID, supplierResponse, truck_nmbr_autocmplt, driverName, driverMobile, driverLicnc, plcOfIssue, position_index);
           break;
       }
    }
 }
else {
    postTruckDetailToServer(truck_nmbr_autocmplt.getText().toString(), driverNames, driverMobiles, driverLicncs, plcOfIssues, subID, supplierResponse, truck_nmbr_autocmplt, driverName, driverMobile, driverLicnc, plcOfIssue, position_index);
 }

【问题讨论】:

    标签: android arraylist view android-edittext android-linearlayout


    【解决方案1】:

    当此类需求出现时,最好使用列表视图或回收器视图。它将自动处理该位置,因此您无需手动管理它。

    【讨论】:

      猜你喜欢
      • 2021-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-10
      相关资源
      最近更新 更多