如何获得项目儿童视图的位置?

时间:2018-04-23 11:17:42

标签: java android json

在列表视图中,我创建了编程图像视图,并添加到ListView项目内的线性布局中。我用于在适配器中添加图像的代码。然后如何获得该图像位置。

下面我添加了我的getView()方法。我在" String [] childDocument"中获得了多个图像。使用for循环我从String []中解析图像并添加到Linear Layout中。

    @NonNull
@Override
public View getView(final int position, View convertView, @NonNull ViewGroup parent) {
    final ApproveReimbBin item = getItem(position);
    FoldingCell cell = (FoldingCell) convertView;
    final ViewHolder viewHolder;

    String date = item.getStr_startDate();
    String[] splitDate = date.split("To");

    String profileName = item.getStr_name();
    String profileEmpId = item.getStr_empId();
    String profileType = item.getStr_type();
    String profileAmount = item.getStr_amount();
    final String[] childDocument = item.getStr_documents();

    if (cell == null) {
        viewHolder = new ViewHolder();
        LayoutInflater vi = LayoutInflater.from(getContext());
        cell = (FoldingCell) vi.inflate(R.layout.adapter_approvereimburs, parent, false);

        // binding view parts to view holder
        viewHolder.imag_listProfileImage = cell.findViewById(R.id.list_image);
        viewHolder.txt_listName = cell.findViewById(R.id.list_profileName);
        viewHolder.txt_listEmpId = cell.findViewById(R.id.list_profileEmpId);
        viewHolder.txt_listType = cell.findViewById(R.id.list_profileType);

        viewHolder.image_childProfileImage = cell.findViewById(R.id.child_profile_img);
        viewHolder.txt_name = cell.findViewById(R.id.txt_profile_name);
        viewHolder.txt_empId = cell.findViewById(R.id.txt_profile_id);
        viewHolder.txt_type = cell.findViewById(R.id.txt_profile_type);

        viewHolder.txt_frmDate = cell.findViewById(R.id.txt_from_date);
        viewHolder.txt_toDate = cell.findViewById(R.id.txt_to_date);
        viewHolder.txt_amount = cell.findViewById(R.id.txt_amount);
        viewHolder.btn_reject = cell.findViewById(R.id.btn_reject);
        viewHolder.btn_approve = cell.findViewById(R.id.btn_approve);
        viewHolder.linearLayout = cell.findViewById(R.id.linearLayout_Image);

        cell.setTag(viewHolder);
    } else {
        if (unfoldedIndexes.contains(position)) {
            cell.unfold(true);
            Log.e("suraj", "unfold call");
        } else {
            cell.fold(true);
            Log.e("suraj", "fold call");
        }
        viewHolder = (ViewHolder) cell.getTag();
    }

    if (null == item)
        return cell;


    String ImageUrl = ServerUrls.Web.IMAGE_URL + profileEmpId.trim() + ".jpg";

    ImageView image;


    if (viewHolder.linearLayout.getChildCount() > 0) {
        viewHolder.linearLayout.removeAllViews();
    }
    for (int i = 0; i < childDocument.length; i++) {

        String doc = childDocument[i].replace("~", "");
        doc = doc.replace("\\", "/");
        doc = doc.replace(",", "");

        image = new ImageView(mContext);
        image.setLayoutParams(new android.view.ViewGroup.LayoutParams(100, 100));
        image.setMaxHeight(100);
        image.setMaxWidth(100);

        Log.e("surajjj", "for loop use " + imageDocument.trim() + doc);

        Picasso.with(mContext)
                .load(imageDocument.trim() + doc)
                .error(R.drawable.doc_img)
                .into(image);

        viewHolder.linearLayout.addView(image);
        int lent = childDocument.length;
        Log.e("surajj", "docu " + imageDocument.trim() + doc + " position " + i + " lenth " + lent);
    }


    viewHolder.linearLayout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            int sr = viewHolder.linearLayout.indexOfChild(view);
            Toast.makeText(mContext, "Postition is "+ sr, Toast.LENGTH_SHORT).show();
        }
    });

    viewHolder.linearLayout.getChildAt(position).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Toast.makeText(mContext, childDocument.toString(), Toast.LENGTH_SHORT).show();
        }
    });

    Picasso.with(mContext)
            .load(ImageUrl.trim())
            .error(R.drawable.ic_user)
            .into(viewHolder.imag_listProfileImage);

    Picasso.with(mContext)
            .load(ImageUrl.trim())
            .error(R.drawable.ic_user)
            .into(viewHolder.image_childProfileImage);


    if (profileName != null || !profileName.equals(" ")) {
        viewHolder.txt_listName.setText(profileName);
        viewHolder.txt_name.setText(profileName);
    }
    if (profileEmpId != null || !profileEmpId.equals(" ")) {
        viewHolder.txt_listEmpId.setText(profileEmpId);
        viewHolder.txt_empId.setText(profileEmpId);
    }
    if (profileType != null || !profileType.equals(" ")) {
        viewHolder.txt_listType.setText(profileType);
        viewHolder.txt_type.setText(profileType);
    }
    if (profileAmount != null || !profileAmount.equals(" ")) {
        viewHolder.txt_amount.setText(profileAmount);
    }

    if (splitDate != null || !splitDate.equals(" ")) {

        if (splitDate.length == 2) {
            Log.d("suraj1", "fromDate " + splitDate[0] + " toDate " + splitDate[1]);

            viewHolder.txt_frmDate.setText(splitDate[0]);
            viewHolder.txt_toDate.setText(splitDate[1]);
        } else {
            Log.d("suraj1", "onlyfromDate " + splitDate[0]);
            viewHolder.txt_frmDate.setText(splitDate[0]);
        }
    }

    viewHolder.btn_approve.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            requestId = item.getStr_requestId();
            reimbursmentId = item.getStr_reimbursementid();
            action = "Approved";
            Methods.showProgressDialog(mContext);
            unfoldedIndexes.clear();
            new asyncSendRequest().execute();
        }
    });

    viewHolder.btn_reject.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            requestId = item.getStr_requestId();
            reimbursmentId = item.getStr_reimbursementid();
            action = "Rejected";
            Methods.showProgressDialog(mContext);
            unfoldedIndexes.clear();
            new asyncSendRequest().execute();
        }
    });

    return cell;
}

在此图片中,我动态添加了图片。我想要这个特定的图像位置。 enter image description here

0 个答案:

没有答案