bhavikadb Ответов: 0

ListView с пользовательского адаптера не в состоянии установить текст в поле TextView


Я создал пользовательский адаптер для установки значений textview и других компонентов в listview, но на некоторых устройствах значение Textview не задано и показывает значение по умолчанию, которое используется при проектировании.

В приведенном ниже коде txtAmount не задан, а другое значение textview задано,но эта проблема существует только в некоторых устройствах

public class ImageCustomList extends ArrayAdapter<String> {

    private final Activity context;
    private final String[] name;
    private final String[] imagepath;
    private final String[] address;
    private final String city[];
    private final String pincode[];
    private final String ISO[];
    private final String NABL[];
    private final String CAP[];
    private final String Service[];
    private final String HomeCollection[];
    private final String Amount[];
    private final String DiscountedAmount[];
    private final String Test[];
    private final String TestAmount[];
    private final double HomeCollectionCharges[];
    private final String FlagSearchFrom;

    customButtonListener customListner;

    public interface customButtonListener {
        public void onButtonClickListner(int position,String value);
    }

    public void setCustomButtonListner(customButtonListener listener) {
        this.customListner = listener;
    }

    public ImageCustomList(Activity context,String[] name,String [] imagepath, String [] address,String [] city,String [] pincode,String [] ISO,String [] NABL,String [] CAP,String [] Service,String []HomeCollection,String [] Amount,String [] DiscountedAmount,String [] Test, String [] TestAmount,double [] HomeCollectionCharges,String FlagSearchFrom) {
        super(context, R.layout.list_row,name);
        this.context = context;
        this.name = name;
        this.imagepath=imagepath;
        this.address = address;
        this.city=city;
        this.pincode=pincode;
        this.ISO=ISO;
        this.NABL=NABL;
        this.CAP=CAP;
        this.Service=Service;
        this.HomeCollection=HomeCollection;
        this.Amount=Amount;
        this.DiscountedAmount=DiscountedAmount;
        this.Test=Test;
        this.TestAmount=TestAmount;
        this.HomeCollectionCharges=HomeCollectionCharges;
        this.FlagSearchFrom=FlagSearchFrom;
    }

    @Override
    public View getView(final int position,View view,ViewGroup viewGroup) {
        LayoutInflater inflater = context.getLayoutInflater();
        View rowView = inflater.inflate(R.layout.list_row, null, true);
        TextView txtName = (TextView) rowView.findViewById(R.id.title);
        //TextView txtAddress = (TextView) rowView.findViewById(R.id.address);
        ImageView imgView =(ImageView)rowView.findViewById(R.id.list_image);

        /*ImageView imgISO =(ImageView)rowView.findViewById(R.id.imgISO);
        ImageView imgNABL =(ImageView)rowView.findViewById(R.id.imgNABL);
        ImageView imgCAP =(ImageView)rowView.findViewById(R.id.imgCAP);
        ImageView imgService =(ImageView)rowView.findViewById(R.id.imgService24);
        ImageView imgHome =(ImageView)rowView.findViewById(R.id.imgHomeCollection);*/

        TextView txtCAP=(TextView)rowView.findViewById(R.id.txtISO);

        TextView txtCity=(TextView)rowView.findViewById(R.id.city);
        //TextView txtPincode=(TextView)rowView.findViewById(R.id.pincode);
        TextView txtAmount=(TextView)rowView.findViewById(R.id.txtAmount);
        TextView txtDiscountedAmount=(TextView)rowView.findViewById(R.id.txtDiscounted);
        TextView txtIndividualTest=(TextView)rowView.findViewById(R.id.txtIndividualTest);
        TextView txtHomeCollection=(TextView)rowView.findViewById(R.id.txtHomeCharges);

        String test_comma_sep=Test[position];
        String amount_comma_sep=TestAmount[position];

        ArrayList<String> lstTest=new ArrayList<>(Arrays.asList(test_comma_sep.split(",")));
        ArrayList<String> lstAmount=new ArrayList<>(Arrays.asList(amount_comma_sep.split(",")));

        String create_indi_test_amt_text="";
        for(int i=0;i<lstTest.size();i++) {
            create_indi_test_amt_text=create_indi_test_amt_text+lstTest.get(i).toString()+" - Rs."+lstAmount.get(i).toString();
            if(i!=lstTest.size()) {
                create_indi_test_amt_text=create_indi_test_amt_text+"\n";
            }
        }

        txtIndividualTest.setText(create_indi_test_amt_text);

        // Loader image - will be shown before loading image
        int loader = R.drawable.ic_logoheart;

        txtName.setText(name[position]);

        ViewHolder holder=new ViewHolder();
        holder.btnBook=(Button)rowView.findViewById(R.id.btnBook);
        holder.btnBook.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                customListner.onButtonClickListner(position,"Book");
            }
        });

        txtCAP.setText(Html.fromHtml(lab_Feature));
        txtCity.setText(city[position]);

        if(DiscountedAmount[position].equals("")) {
            txtAmount.setTextColor(Color.parseColor("#0391D1"));
            txtDiscountedAmount.setText("");
            if(FlagSearchFrom.equals("Test")) {
                if(HomeCollectionCharges[position]==0){
                    txtHomeCollection.setText("Home Collection Charges:FREE");
                    txtAmount.setText("Rs." + Amount[position]);
                }
                else{
                    txtHomeCollection.setText("Home Collection Charges: Rs."+HomeCollectionCharges[position]);
                    txtAmount.setText("Rs." + Amount[position]);
                }
            }
            else {
                txtAmount.setText("Rs." + Amount[position]);
                txtHomeCollection.setVisibility(View.GONE);
            }
        }
        else{

            txtAmount.setPaintFlags(txtAmount.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
            txtDiscountedAmount.setText("Rs." + DiscountedAmount[position]);
            if(FlagSearchFrom.equals("Test")) {
                if(HomeCollectionCharges[position]==0){
                    txtHomeCollection.setText("Home Collection Charges:FREE");
                    txtAmount.setText("Rs." + Amount[position]);
                }
                else{
                    txtHomeCollection.setText("Home Collection Charges: Rs."+HomeCollectionCharges[position]);
                    txtAmount.setText("Rs." + Amount[position]);
                    txtDiscountedAmount.setText("Rs." + DiscountedAmount[position]);
                }
            }
            else {
                txtAmount.setText("Rs." + Amount[position]);
                txtHomeCollection.setVisibility(View.GONE);
            }

        }

        try {

            ImageLoader imgLoader = new ImageLoader(getContext().getApplicationContext());

            imgLoader.DisplayImage(imagepath[position], loader, imgView);
        }
        catch (Exception ex){

        }

        return rowView;
    }

    public class ViewHolder {
        Button btnBook;
    }
}


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:removed="@drawable/list_selector"

    android:orientation="horizontal"

    android:padding="5dip" >



    <!-- Name of Lab-->
    <TextView

        android:id="@+id/title"

        android:layout_width="wrap_removed"

        android:layout_height="wrap_removed"

        android:layout_alignTop="@+id/logo"

        android:layout_alignParentLeft="true"

        android:textColor="#3D3D3D"

        android:typeface="sans"

        android:textSize="19sp"

        android:textStyle="bold"

        android:text="Title"

        />

    <LinearLayout

        android:id="@+id/linearAmt"

        android:orientation="horizontal"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_below="@+id/title"

        android:layout_alignParentLeft="true">
    <!--Amount text -->
    <TextView

        android:id="@+id/txtAmount"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:textColor="#FF0000"

        android:textSize="16sp"

        android:text="Rs.1234.00"

        android:layout_weight="1"/>

        <TextView

            android:id="@+id/txtDiscounted"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:textColor="#0391D1"

            android:textSize="21sp"

            android:paddingLeft="16sp"

            android:layout_below="@+id/title"

            android:text="Rs.1000.00"

            android:layout_weight="1"/>
    </LinearLayout>

    <TextView

        android:id="@+id/txtHomeCharges"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:textColor="#FFA500"

        android:textSize="8sp"

        android:layout_below="@+id/linearAmt"

        android:text="Home Collection Charges: Rs.100.00"

        />

    <TextView

        android:id="@+id/txtIndividualTest"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_below="@id/txtHomeCharges"

        android:textColor="#000000"

        android:textSize="8sp"

        android:layout_marginTop="1dip"

        android:layout_toLeftOf="@+id/logo"

        android:layout_alignParentLeft="true"

        android:singleLine="false"

        android:paddingRight="5sp"

        android:text="Just gona \n stand  \n there and ...\n" />

    <!-- Address -->
    <!--<TextView
        android:id="@+id/address"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/txtIndividualTest"
        android:textColor="#7D7D7D"
        android:textSize="18sp"
        android:layout_marginTop="1dip"
        android:layout_toRightOf="@+id/logo"
        android:singleLine="false"
        android:layout_weight="1"
        android:ellipsize="none"
        android:maxLines="100"
        android:scrollHorizontally="false"
        android:paddingRight="5sp"
        android:text="Just gona stand there and ..." />-->

    <!--City -->
    <TextView

        android:id="@+id/city"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:textColor="#7D7D7D"

        android:textSize="16sp"

        android:layout_marginTop="1dip"

        android:layout_below="@+id/txtIndividualTest"

        android:layout_toLeftOf="@+id/logo"

        android:layout_alignParentLeft="true"

        android:text="City"/>

    <!--Pincode -->
    <!--<TextView
        android:id="@+id/pincode"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#7D7D7D"
        android:textSize="18sp"
        android:layout_marginTop="1dip"
        android:paddingLeft="2sp"
        android:layout_below="@+id/address"
        android:layout_toRightOf="@+id/city"
        android:text="Pincode"/>-->

    <!--ISO Ceritified Icon -->
    <!--<ImageView
        android:id="@+id/imgISO"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="3dip"
        android:paddingLeft="2sp"
        android:src="@drawable/tickmark"
        android:layout_toRightOf="@+id/logo"
        android:layout_below="@+id/city"
        />-->

    <!--ISO Ceritified Text -->
    <TextView

        android:id="@+id/txtISO"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:textColor="#343434"

        android:textSize="16sp"

        android:layout_marginTop="3dip"

        android:paddingLeft="2sp"

        android:layout_below="@+id/city"

        android:layout_toLeftOf="@+id/logo"

        android:layout_alignParentLeft="true"

        android:text="ISO Certified"

        android:maxLines="5"

        android:singleLine="false"/>

    <!--NABLCertified Ceritified Icon -->
    <!--<ImageView
        android:id="@+id/imgNABL"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="3dip"
        android:paddingLeft="15sp"
        android:src="@drawable/tickmark"
        android:layout_toRightOf="@+id/txtISO"
        android:layout_below="@+id/city"
        />-->

    <!--NABLCertified Ceritified Text -->
    <!--<TextView
        android:id="@+id/txtNABL"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#343434"
        android:textSize="12dip"
        android:layout_marginTop="3dip"
        android:paddingLeft="2sp"
        android:layout_below="@+id/city"
        android:layout_toRightOf="@+id/imgNABL"
        android:text="NABL Certified"/>-->

    <!--CAPCertified Ceritified Icon -->
    <!--<ImageView
        android:id="@+id/imgCAP"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="3dip"
        android:paddingLeft="2sp"
        android:paddingTop="10sp"
        android:src="@drawable/tickmark"
        android:layout_toRightOf="@+id/logo"
        android:layout_below="@+id/imgISO"
        />-->

    <!--CAPCertified Ceritified Text -->
    <!--<TextView
        android:id="@+id/txtCAP"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#343434"
        android:textSize="12dip"
        android:layout_marginTop="3dip"
        android:paddingLeft="2sp"
        android:layout_below="@+id/txtISO"
        android:layout_toRightOf="@+id/imgCAP"
        android:text="CAP Certified"/>-->

    <!--Service 24 Hrs Icon -->
    <!--<ImageView
        android:id="@+id/imgService24"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10sp"
        android:paddingLeft="15sp"
        android:src="@drawable/tickmark"
        android:layout_toRightOf="@+id/txtCAP"
        android:layout_below="@+id/imgNABL"
        />-->

    <!--Service 24 Hrs Text -->
    <!--<TextView
        android:id="@+id/txtService24"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#343434"
        android:textSize="12dip"
        android:layout_marginTop="3dip"
        android:paddingLeft="2sp"
        android:layout_below="@+id/txtNABL"
        android:layout_toRightOf="@+id/imgService24"
        android:text="24 Hours Service"/>-->

    <!--Home Collection Icon -->
    <!--<ImageView
        android:id="@+id/imgHomeCollection"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="10sp"
        android:src="@drawable/tickmark"
        android:layout_toRightOf="@+id/logo"
        android:layout_below="@+id/imgCAP"
        />-->

    <!--Home Collection Text -->
    <!--<TextView
        android:id="@+id/txtHomeCollection"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#343434"
        android:textSize="12dip"
        android:layout_marginTop="3dip"
        android:paddingLeft="2sp"
        android:layout_below="@+id/txtCAP"
        android:layout_toRightOf="@+id/imgHomeCollection"
        android:text="Home Collection Facility"/>-->

    <!--  ListRow Left sied Logo image -->
    <LinearLayout android:id="@+id/logo"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:paddingTop="0dp"

        android:paddingLeft="2dp"

        android:layout_alignParentRight="true"

        >

        <ImageView

            android:id="@+id/list_image"

            android:layout_width="108sp"

            android:layout_height="70dip"

            android:scaleType="centerInside"

            android:layout_gravity="center|top"

            android:layout_marginRight="0dp"

            />

    </LinearLayout>

    <Button

        android:id="@+id/btnBook"

        android:layout_width="108sp"

        android:layout_height="wrap_content"

        android:text="BOOK"

        android:textStyle="bold"

        android:textColor="#FFFFFF"

        android:background="#FFA500"

        android:layout_marginTop="5dp"

        android:layout_below="@+id/logo"

        android:layout_marginRight="0dp"

        android:layout_alignParentRight="true"

        />

</RelativeLayout>


Что я уже пробовал:

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

David Crow

Пробовали ли вы обрезать свой адаптер и XML-код до минимума и все же воспроизвести эту проблему? Как бы то ни было, большая часть того, что вы показали, не имеет отношения к проблеме. Мое предложение состояло бы в том, чтобы работать с одним TextView поле и использовать строковые литералы при вызове setText() Если это сработает, добавьте еще один. И т.д.

0 Ответов