This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center
                            
                        
                    
                
                                7年前关闭。
            
                    
在我的应用程序中,我将联系人导入到列表视图中,尝试更改列表视图的背景色,我可以更改整个列表视图的颜色,但是,我只希望具有地址和其余部分的联系人的颜色保持不变。

  @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View view = convertView;

        if (view == null) {
                        LayoutInflater inflater = (LayoutInflater) (getContext()
                                        .getSystemService(Context.LAYOUT_INFLATER_SERVICE));
                        view = inflater.inflate(renderer, null);
                }

                TextView text = (TextView) view.findViewById(R.id.name);
                ImageView photo = (ImageView) view.findViewById(R.id.photo);

                TextView textContNo = (TextView) view.findViewById(R.id.contactno);
                TextView textEmailId = (TextView) view.findViewById(R.id.emailId);

                Profile contact = listCont.get(position);
                text.setText(contact.getName());
                contact.getName();
                contact.getId();

                text.setTag(contact);
                text.setOnTouchListener(new OnTouchListener() {

                        @Override
                        public boolean onTouch(View v, MotionEvent event) {
                                Profile myContact= (Profile) v.getTag();

                        Intent intent = new Intent();
                        intent.putExtra("type", profileType);
                        intent.putExtra("name", myContact.getName());
                        intent.putExtra("email", myContact.getEmail());
                        intent.putExtra("contactid", myContact.getId());
                        intent.putExtra("address", myContact.getAddress());
                        intent.putExtra("city", myContact.getCity());
                        intent.putExtra("state", myContact.getState());
                        intent.putExtra("countryName", myContact.getCountryName());
                        intent.putExtra("postalCode", myContact.getPostalCode());
                        intent.putExtra("website", myContact.getWebSite());
                        intent.putExtra("mobileNumber", myContact.getMobileNo());
                        intent.putExtra("phoneNumber", myContact.getLandLineNo());
                        Log.d(TAG, "On Activity Result Method : 1");
                        activity.setResult(100, intent);

                        activity.finish();
                        Constants.loadEntries.cancel(true);
                                return false;
                        }
                });



                if(contact.getPhoto() !=null && !contact.getPhoto().equals("")){
                        photo.setImageBitmap(contact.getPhoto());
                }else{
                        photo.setImageResource(R.drawable.profile);
                }

                photo.setTag(contact);
                photo.setOnTouchListener(new OnTouchListener() {

                        @Override
                        public boolean onTouch(View v, MotionEvent event) {
                                Profile myContact= (Profile)v.getTag();

                        Intent intent = new Intent();
                        intent.putExtra("type", profileType);
                        intent.putExtra("name", myContact.getName());
                        intent.putExtra("email", myContact.getEmail());
                        intent.putExtra("contactid", myContact.getId());
                        intent.putExtra("address", myContact.getAddress());
                        intent.putExtra("website", myContact.getWebSite());
                        intent.putExtra("mobileNumber", myContact.getMobileNo());
                        intent.putExtra("phoneNumber", myContact.getLandLineNo());
                        Log.d(TAG, "On Activity Result Method : 2");
                        activity.setResult(100, intent);
                        activity.finish();
                        Constants.loadEntries.cancel(true);
                                return false;
                        }
                });

                textContNo.setText(contact.getNumber());
                textEmailId.setText(contact.getEmail());


                view.setClickable(true);
        view.setTag(contact);
        view.setOnClickListener(new OnClickListener() {

                        @Override
                        public void onClick(View v) {
                                Profile myContact= (Profile) v.getTag();

                        Intent intent = new Intent();
                        intent.putExtra("type", profileType);
                        intent.putExtra("name", myContact.getName());
                        intent.putExtra("email", myContact.getEmail());
                        intent.putExtra("contactid", myContact.getId());
                        intent.putExtra("address", myContact.getAddress());
                        intent.putExtra("website", myContact.getWebSite());
                        intent.putExtra("mobileNumber", myContact.getMobileNo());
                        intent.putExtra("phoneNumber", myContact.getLandLineNo());
                        Log.d(TAG, "On Activity Result Method : 3");
                        activity.setResult(100, intent);
                        activity.finish();
                        Constants.loadEntries.cancel(true);
                        }
                });

                LinearLayout layout = (LinearLayout)view.findViewById(R.id.profilelayout);
                layout.setTag(contact);
                layout.setOnClickListener(new OnClickListener() {

                        @Override
                        public void onClick(View v) {
                                Profile myContact= (Profile) v.getTag();
                        Intent intent = new Intent();
                        intent.putExtra("type", profileType);
                        intent.putExtra("name", myContact.getName());
                        intent.putExtra("phoneNumber", myContact.getLandLineNo());
                        intent.putExtra("email", myContact.getEmail());
                        intent.putExtra("contactid", myContact.getId());
                        intent.putExtra("address", myContact.getAddress());
                        intent.putExtra("website", myContact.getWebSite());
                        intent.putExtra("mobileNumber", myContact.getMobileNo());
                        Log.d(TAG, "On Activity Result Method : 4");
                        activity.setResult(100, intent);
                        activity.finish();
                        Constants.loadEntries.cancel(true);
                        }
                });


                if (position % 2 == 0)
                        view.setBackgroundResource(R.drawable.listshape);
                else
                        view.setBackgroundResource(R.drawable.favoritebody);
        return view;
    }


仅当我有联系地址时才如何更改颜色?

最佳答案

使用此getView

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    View view = convertView;

    if (view == null) {
        LayoutInflater inflater = (LayoutInflater) (getContext()
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE));
        view = inflater.inflate(renderer, null);
    }

    TextView text = (TextView) view.findViewById(R.id.name);
    ImageView photo = (ImageView) view.findViewById(R.id.photo);

    TextView textContNo = (TextView) view.findViewById(R.id.contactno);
    TextView textEmailId = (TextView) view.findViewById(R.id.emailId);

    Profile contact = listCont.get(position);
    text.setText(contact.getName());
    contact.getName();
    contact.getId();

    text.setTag(contact);
    text.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            Profile myContact= (Profile) v.getTag();

            Intent intent = new Intent();
            intent.putExtra("type", profileType);
            intent.putExtra("name", myContact.getName());
            intent.putExtra("email", myContact.getEmail());
            intent.putExtra("contactid", myContact.getId());
            intent.putExtra("address", myContact.getAddress());
            intent.putExtra("city", myContact.getCity());
            intent.putExtra("state", myContact.getState());
            intent.putExtra("countryName", myContact.getCountryName());
            intent.putExtra("postalCode", myContact.getPostalCode());
            intent.putExtra("website", myContact.getWebSite());
            intent.putExtra("mobileNumber", myContact.getMobileNo());
            intent.putExtra("phoneNumber", myContact.getLandLineNo());
            Log.d(TAG, "On Activity Result Method : 1");
            activity.setResult(100, intent);

            activity.finish();
            Constants.loadEntries.cancel(true);
            return false;
        }
    });



    if(contact.getPhoto() !=null && !contact.getPhoto().equals("")){
        photo.setImageBitmap(contact.getPhoto());
    }else{
        photo.setImageResource(R.drawable.profile);
    }

    photo.setTag(contact);
    photo.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            Profile myContact= (Profile)v.getTag();

            Intent intent = new Intent();
            intent.putExtra("type", profileType);
            intent.putExtra("name", myContact.getName());
            intent.putExtra("email", myContact.getEmail());
            intent.putExtra("contactid", myContact.getId());
            intent.putExtra("address", myContact.getAddress());
            intent.putExtra("website", myContact.getWebSite());
            intent.putExtra("mobileNumber", myContact.getMobileNo());
            intent.putExtra("phoneNumber", myContact.getLandLineNo());
            Log.d(TAG, "On Activity Result Method : 2");
            activity.setResult(100, intent);
            activity.finish();
            Constants.loadEntries.cancel(true);
            return false;
        }
    });

    textContNo.setText(contact.getNumber());
    textEmailId.setText(contact.getEmail());


    view.setClickable(true);
    view.setTag(contact);
    view.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Profile myContact= (Profile) v.getTag();

            Intent intent = new Intent();
            intent.putExtra("type", profileType);
            intent.putExtra("name", myContact.getName());
            intent.putExtra("email", myContact.getEmail());
            intent.putExtra("contactid", myContact.getId());
            intent.putExtra("address", myContact.getAddress());
            intent.putExtra("website", myContact.getWebSite());
            intent.putExtra("mobileNumber", myContact.getMobileNo());
            intent.putExtra("phoneNumber", myContact.getLandLineNo());
            Log.d(TAG, "On Activity Result Method : 3");
            activity.setResult(100, intent);
            activity.finish();
            Constants.loadEntries.cancel(true);
        }
    });

    LinearLayout layout = (LinearLayout)view.findViewById(R.id.profilelayout);
    layout.setTag(contact);
    layout.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Profile myContact= (Profile) v.getTag();
            Intent intent = new Intent();
            intent.putExtra("type", profileType);
            intent.putExtra("name", myContact.getName());
            intent.putExtra("phoneNumber", myContact.getLandLineNo());
            intent.putExtra("email", myContact.getEmail());
            intent.putExtra("contactid", myContact.getId());
            intent.putExtra("address", myContact.getAddress());
            intent.putExtra("website", myContact.getWebSite());
            intent.putExtra("mobileNumber", myContact.getMobileNo());
            Log.d(TAG, "On Activity Result Method : 4");
            activity.setResult(100, intent);
            activity.finish();
            Constants.loadEntries.cancel(true);
        }
    });


    if (position % 2 == 0)
        view.setBackgroundResource(R.drawable.listshape);
    else
        view.setBackgroundResource(R.drawable.favoritebody);

    if (contact.getAddress() == null || contact.getAddress().length == 0){
        view.setBackgroundColor(android.R.color.background_dark);  //Set your own color here when address is null
    } else {
        view.setBackgroundColor(android.R.color.background_light);  //Set your own color here when address is present
    }

    return view;
}

10-05 21:18
查看更多