Как получить положение дочернего представления элемента?

В представлении списка я создал программное представление изображения и добавил его в линейный макет внутри элемента 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;
}

В этом изображении я динамически добавляю изображения. Я хочу эту пертикулярную позицию изображения. Как получить положение дочернего представления элемента?

опубликуйте свой полный метод getView ().

Umair 23.04.2018 13:21

@Umair Я отредактировал свой код, пожалуйста, проверьте

suraj 23.04.2018 13:55

Хорошо, а теперь почему бы вам не использовать позицию, заданную самим методом. Он вернет вам позицию элемента, по которому вы щелкнули?

Umair 23.04.2018 13:59

Я получаю положение представления списка, но мне нужно это положение изображения или данные, которые находятся в линейном макете внутри элемента ListView.

suraj 23.04.2018 14:04
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
40
0

Другие вопросы по теме