마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

그리드 뷰 셀 색상 문제..

0 추천

질문을 읽어주셔서 감사합니다!!ㅜㅜ 현재 안드로이드 시간표어플을 구현중에 있습니다

그림과 같이 그리드 뷰로 만들어져 있는 상태에서 각 셀을 롱 클릭하게 되면 인텐트를 사용하여

과목 등과 스피너를 통해 색상을 고를 수 있도록 구현해놓은 상태입니다.

그리드 뷰에는 과목명만 나오고 나머지 강의실등은  셀을 클릭 했을 때 토스트 메시지를 주어 나타냈습니다.

소스를 보시면 GET STRING 과 RESULT를 통해 인텐트로 부터 값들을 받앗구요

출력할 것은 출력하고 문제는 색상인데 소스 처럼 하려는데 텍스트들만 나오고 색은 변경이 되질 않네요ㅜㅜ

해결 방법이나 조언 좀 해주시면 감사하겠습니다ㅜㅜ

View mTempView;
timetable.setOnItemLongClickListener(new OnItemLongClickListener() {

   @Override
   public boolean onItemLongClick(AdapterView<?> parent, View v,
     int position, long id) {
    // TODO Auto-generated method stub
    Position = position;
          if(Position%6==0 && Position<6){
              v.setClickable(false);
          }else{
           callActivity(Timeadapter.Context,Position);
          }
         
          parent.getChildAt(position);
          mTempView=parent.getChildAt(position);
    return false;
   }
  });
  timetable.setOnItemClickListener(new OnItemClickListener() {
   public void onItemClick(AdapterView<?> parent, View v,
     int position, long id) {   
    mParent=parent;
    Toast.makeText(TimeActivity.this, "강   의: "+Str[position]+"\n강의실: "+Str1[position]+"\n교   수: "+Str2[position], Toast.LENGTH_SHORT).show();
   }
  });
  
 }

 public void callActivity(Context context, int selectedIndex) {
  Intent intent = new Intent(context, Timeset.class);
  startActivityForResult(intent, GET_STRING);
 }

 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  if (requestCode == GET_STRING) {
   if (resultCode == RESULT_OK) {
    
    str =String.format("%s",data.getStringExtra("INPUT_TEXT"));
                Str[Position]=str;
    str1 =String.format("%s",data.getStringExtra("INPUT_TEXT1"));
    Str1[Position]=str1;
    str2 =String.format("%s",data.getStringExtra("INPUT_TEXT2"));
                Str2[Position]=str2;
    spi1=String.format("%s",data.getStringExtra("SPINNER1"));
    System.out.println(spi1);
    TimeList.set(Position, str);
    
    color[Position]= spi1;
    if(color[Position].equals("RED")){
           mTempView.setBackgroundColor(Color.RED);
          }else if(spi1.equals("BLUE")){
           mTempView.setBackgroundColor(Color.BLUE);
          }else if(spi1.equals("GREEN")){
           mTempView.setBackgroundColor(Color.GREEN);
          }else if(spi1.equals("YELLOW")){
           mTempView.setBackgroundColor(Color.YELLOW);
          }
    System.out.println(color[Position]);
    Log.i("컬리는",mTempView.toString()+spi1);
    timetable.setAdapter(Timeadapter);
   }
  }
 }

 

 

stevenfeg (160 포인트) 님이 2013년 6월 4일 질문

1개의 답변

0 추천

어뎁터를 쓰신다면 adapter.notifyDataSetChanged();로 갱신하면 되공

아니면 색바꾸는 분기부분 디버깅 한번 해보세요. 제일 확실합니당.

  (11,920 포인트) 님이 2013년 6월 4일 답변
...