Android에서 사용자 상호 작용없이 특정 목록 항목의 텍스트보기 색상 변경

Ashish 슈 클라

거기에 ArrayList<String>몇 가지 데이터가 있습니다. 다른 항목과 함께 내 Custom ArrayAdapter 생성자에 전달하고 있습니다. getView 메서드에서 목록 Arraylist<String>항목으로 항목을 확인하고 있습니다.

그들이 같으면 Listview에서 textview의 색상을 변경하고 싶습니다. 일부 항목의 색상을 변경하지만 Listview를 스크롤하면 ArrayList<String>전달 되지 않은 다른 항목의 색상이 변경 됩니다.

다음은 내 생성자와 getView () 메서드의 코드입니다.

   public CustomMenuArrayAdapter(Context ctx,int res,String[] menuName,String[] menuDesc,String[] menuIngred,String[] menuPrice,List orderNames){
   super(ctx,res,menuName);
   this.ctx=ctx;
   this.menuName=menuName;
   this.menuDesc=menuDesc;
   this.menuIngred=menuIngred;
   this.menuPrice=menuPrice;
   this.orderNames=orderNames;
   this.inflaters=LayoutInflater.from(ctx); 
}     


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

    ViewHolder viewHold;
    View v=convertView;
    if(v==null){
        viewHold=new ViewHolder();
        v=inflaters.inflate(R.layout.category_details,parent,false);
       // viewHold.txtQtys=(TextView)v.findViewById(R.id.txtQty);
        viewHold.txtAdd=(TextView)v.findViewById(R.id.txtAdd);
        viewHold.txtPrices=(TextView)v.findViewById(R.id.txtPrices);
        viewHold.txtName=(TextView)v.findViewById(R.id.txtCatNameDetails);
        viewHold.txtDesc=(TextView)v.findViewById(R.id.txtCatDescDetails);
        viewHold.txtIngred=(TextView)v.findViewById(R.id.txtIngredientDetails);
       // viewHold.add=(ImageView)v.findViewById(R.id.imgPlus);
       // viewHold.sub=(ImageView)v.findViewById(R.id.imgMinus);
        v.setTag(viewHold);
       // viewHold.txtName.setTag(position);
    }else{
        viewHold=(ViewHolder)v.getTag();
    }

   if(orderNames.get(0)!=null || !orderNames.get(0).equals("")) {
           for(int k=0;k<orderNames.size();k++) {
               Log.e("k:----->"+k," menuN:"+menuName[position]+"<--->"+orderNames.get(k));
               if (orderNames.get(k).toString().equals(menuName[position])) {
                    TextView txt=(TextView)v.findViewById(R.id.txtCatNameDetails);
                    txt.setBackgroundColor(Color.LTGRAY);
                   break;
               }

               }
           }

    viewHold.txtName.setText(menuName[position]);
    viewHold.txtDesc.setText("Desc: "+menuDesc[position]);
    viewHold.txtIngred.setText("Ingred: "+menuIngred[position]);
    viewHold.txtPrices.setText("UGX : " + menuPrice[position]);

    return v;
}   
비 크람

논리가 올바른지 확인하십시오. 예를 들어, 이것은 잘못 보입니다.

if (orderNames.get(0) != null || !orderNames.get(0).equals("")) {
    ....
}

수행하는 첫 번째 확인은 다음과 같습니다.

orderNames.get(0) != null

이 검사의 두 가지 결과 :

  1. TRUE : orderNames.get(0)is not null===> 두 번째 검사도 수행되지 않습니다 ORing.

  2. FALSE : orderNames.get(0)is null===> ===>이기 때문에 두 번째 검사가 수행 ORing되며 NullPointerException여기에 다음 이 제공됩니다 !(null).equals("").

더 좋아 보이나요?

// Check if orderNames.get(0) is empty (note the use of `trim()`)
if (orderNames.get(0) != null && !orderNames.get(0).trim().equals("")) {
    ....
}

더 나은 :

// Rejects `null`, ""(empty string) & "    "(strings that contain only whitespaces)
if (!TextUtils.isEmpty(orderNames.get(0)) && !TextUtils.isEmpty(orderNames.get(0).trim)) {
    ....
}

그래도이 수표로 무엇을 성취했는지 모르겠습니다. 이것은 목록의 첫 번째 항목에 비어 있지 않은 문자열이 포함되어 있음을 확인합니다. 나중에 전체 목록을 반복하고 null 또는 빈 문자열 검사도 수행하지 않습니다.

나는 이것을 권장하지 않지만 시도해보십시오. 작동한다면 이유를 알아 내십시오.

// Reset - in case this view was recycled
viewHold.txtName.setBackgroundColor(Color.TRANSPARENT);

if (!TextUtils.isEmpty(orderNames.get(0)) && !TextUtils.isEmpty(orderNames.get(0).trim)) {
    for(int k = 0; k < orderNames.size(); k++) {
        Log.e("k:----->" + k, " menuN: " + menuName[position] + "<--->" + orderNames.get(k));

        // Can possibly throw NPE
        // If `menuName[position]` is guaranteed to be non-null, you can reverse the check
        if (orderNames.get(k).toString().equals(menuName[position])) {
            viewHold.txtName.setBackgroundColor(Color.LTGRAY);
            break;
        }
    }
}

참고 : ViewHolder패턴 구현 은 괜찮습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Android 용 목록보기에서 지정된 항목의 색상 변경

분류에서Dev

사용자 지정 목록보기 클릭 항목 실행 시간의 텍스트 색상 변경

분류에서Dev

데이터베이스의 값에 따라 목록보기에서 특정 항목의 색상 변경

분류에서Dev

메뉴 드로어 선택시 사용자 정의보기 목록 항목의 텍스트 색상을 변경하는 방법-DrawerLayout

분류에서Dev

Android에서 목록보기 행 항목 배경색 및 텍스트 색상 변경

분류에서Dev

Android에서 목록보기 행 항목 배경색 및 텍스트 색상 변경

분류에서Dev

UWP 앱에서 ListView 항목을 버튼으로 어떻게 사용할 수 있습니까? 또는 uwp에서 목록보기 항목을 클릭하여 텍스트 상자의 텍스트를 어떻게 변경할 수 있습니까?

분류에서Dev

목록보기에서 다른 변경이있을 때 텍스트 상자 값 설정

분류에서Dev

목록 상자의 특정 항목에 다른 속성 적용

분류에서Dev

조건에 따라 목록 상자 항목의 색상 변경

분류에서Dev

VB의 목록 상자에서 특정 텍스트 항목 계산

분류에서Dev

목록보기에 나타나는 항목의 색상 변경

분류에서Dev

핸들러에서 목록보기 항목 텍스트 색상 및 이미지 색상을 변경하는 방법

분류에서Dev

텍스트 상자에서 목록보기에 항목 추가

분류에서Dev

Android에서 스타일을 사용하여 경고 대화 상자에서 목록보기 텍스트 색상을 변경하는 방법은 무엇입니까?

분류에서Dev

Android : 목록보기에 체크 박스가있는 맞춤 레이아웃 즉시 텍스트 색상 변경

분류에서Dev

터미널 명령 프롬프트에서 사용자, 호스트, 디렉토리 정보의 색상 변경

분류에서Dev

터미널 명령 프롬프트에서 사용자, 호스트, 디렉토리 정보의 색상 변경

분류에서Dev

Android : 사용자 정의보기에서 텍스트 색상을 변경하려면 어떻게해야합니까?

분류에서Dev

link_to를 사용하여 부트 스트랩 목록 항목의 색상을 변경하는 레일

분류에서Dev

Android-스피너에서 특정 항목의 텍스트 색상 설정

분류에서Dev

Android : 드롭 다운 목록 내에서 스피너 항목의 텍스트 색상 변경

분류에서Dev

(iOS 9 이하) 사용자 상호 작용 중 탭 표시 줄 항목 텍스트 색상을 지정하는 방법 (선택 및 정상 상태 모두)

분류에서Dev

(iOS 9 이하) 사용자 상호 작용 중 탭 표시 줄 항목 텍스트 색상을 지정하는 방법 (선택 및 정상 상태 모두)

분류에서Dev

FlatList onPress에서 텍스트 항목의 색상 변경

분류에서Dev

FlatList onPress에서 텍스트 항목의 색상 변경

분류에서Dev

목록 상자의 일부 항목에 대한 VB .Net 변경 전면 색상

분류에서Dev

튜플 목록 상자에서 튜플의 특정 항목에 액세스

분류에서Dev

사용자 지정 ListView의 텍스트 색상 변경

Related 관련 기사

  1. 1

    Android 용 목록보기에서 지정된 항목의 색상 변경

  2. 2

    사용자 지정 목록보기 클릭 항목 실행 시간의 텍스트 색상 변경

  3. 3

    데이터베이스의 값에 따라 목록보기에서 특정 항목의 색상 변경

  4. 4

    메뉴 드로어 선택시 사용자 정의보기 목록 항목의 텍스트 색상을 변경하는 방법-DrawerLayout

  5. 5

    Android에서 목록보기 행 항목 배경색 및 텍스트 색상 변경

  6. 6

    Android에서 목록보기 행 항목 배경색 및 텍스트 색상 변경

  7. 7

    UWP 앱에서 ListView 항목을 버튼으로 어떻게 사용할 수 있습니까? 또는 uwp에서 목록보기 항목을 클릭하여 텍스트 상자의 텍스트를 어떻게 변경할 수 있습니까?

  8. 8

    목록보기에서 다른 변경이있을 때 텍스트 상자 값 설정

  9. 9

    목록 상자의 특정 항목에 다른 속성 적용

  10. 10

    조건에 따라 목록 상자 항목의 색상 변경

  11. 11

    VB의 목록 상자에서 특정 텍스트 항목 계산

  12. 12

    목록보기에 나타나는 항목의 색상 변경

  13. 13

    핸들러에서 목록보기 항목 텍스트 색상 및 이미지 색상을 변경하는 방법

  14. 14

    텍스트 상자에서 목록보기에 항목 추가

  15. 15

    Android에서 스타일을 사용하여 경고 대화 상자에서 목록보기 텍스트 색상을 변경하는 방법은 무엇입니까?

  16. 16

    Android : 목록보기에 체크 박스가있는 맞춤 레이아웃 즉시 텍스트 색상 변경

  17. 17

    터미널 명령 프롬프트에서 사용자, 호스트, 디렉토리 정보의 색상 변경

  18. 18

    터미널 명령 프롬프트에서 사용자, 호스트, 디렉토리 정보의 색상 변경

  19. 19

    Android : 사용자 정의보기에서 텍스트 색상을 변경하려면 어떻게해야합니까?

  20. 20

    link_to를 사용하여 부트 스트랩 목록 항목의 색상을 변경하는 레일

  21. 21

    Android-스피너에서 특정 항목의 텍스트 색상 설정

  22. 22

    Android : 드롭 다운 목록 내에서 스피너 항목의 텍스트 색상 변경

  23. 23

    (iOS 9 이하) 사용자 상호 작용 중 탭 표시 줄 항목 텍스트 색상을 지정하는 방법 (선택 및 정상 상태 모두)

  24. 24

    (iOS 9 이하) 사용자 상호 작용 중 탭 표시 줄 항목 텍스트 색상을 지정하는 방법 (선택 및 정상 상태 모두)

  25. 25

    FlatList onPress에서 텍스트 항목의 색상 변경

  26. 26

    FlatList onPress에서 텍스트 항목의 색상 변경

  27. 27

    목록 상자의 일부 항목에 대한 VB .Net 변경 전면 색상

  28. 28

    튜플 목록 상자에서 튜플의 특정 항목에 액세스

  29. 29

    사용자 지정 ListView의 텍스트 색상 변경

뜨겁다태그

보관