2012-11-30 6 views
0

내 응용 프로그램에서 사용자가 imageview를 클릭하면 textview의 글꼴 크기가 변경되어야합니다. 그리고 사용자가 동일한 imageview를 다시 한 번 클릭하면 텍스트는 이전 글꼴로 설정해야합니다. 내 adpater 클래스에서TextView 글꼴 변경

: 내가 advanve에서 wrong.please 도움말 me..Thanks을 갈거야

public View getView(int position, View convertView, ViewGroup parent) 
    { 
     this.Position=position; 
     // TODO Auto-generated method stub 

     rowView = LayoutInflater 
       .from(parent.getContext()) 
       .inflate(R.layout.newsdescriptionrow, null); 

      TextView prevnews=(TextView)rowView.findViewById(R.id.prevnews); 
      TextView nextnews=(TextView)rowView.findViewById(R.id.nextnews); 

      ImageView img=(ImageView)rowView.findViewById(R.id.fontimage); 
      img.setImageResource(mImageIds); 

img.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
       if(!fontselection) 
       { 
        font=20; 
        fontselection = true; 

       } 
       else 
       { 
        System.out.println("inside else.."); 
        font = 10; 
        fontselection = false; 

       } 
//    font=20; 
       TextView textView = (TextView) rowView 
         .findViewById(R.id.name_Desclabel); 
       textView.setText(body[Position]); 
       System.out.println("fontsasss="+font); 
       textView.setTextSize(font); 


      } 
     }); 

..

+0

두 번째로 onClickListener 내부로 이동합니까? –

+0

나중에 그 Shreya 샤 ..하지만 글꼴 크기가 10으로 설정되지 않습니다 ... – Subburaj

+0

그리고 그것은 다른 안으로 가지 ?? –

답변

1

당신은 할 수 있습니다 사용할 수있는 여러 가지 방법 중 하나를 사용하여.

는 효율성을

TextView textView = (TextView) rowView.findViewById(R.id.name_Desclabel); 

// 솔루션을 청취자 중 1 개

img.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       //1. get the font size 
       float fontSize = textView.getTextSize(); 
       //change the font size 
       if(fontSize == 10){ 
        fontSize=20; 
       }else if(fontSize==20){ 
        fontSize=10; 
       } 

       textView.setText(body[Position]); 
       System.out.println("fontsasss="+font); 
       //3. set the new font size 
       textView.setTextSize(fontSize); 
      } 
     }); 

// 해결 방법 2

boolean isFontChanged=false; 
textView.setTextSize(/*10 OR 20 set initial size here*/); 


img.setOnClickListener(new View.OnClickListener() { 

       @Override 
       public void onClick(View arg0) { 

        //1. change the font size 
        if(isFontChanged){ 
         fontSize=20; //initial 
        }else { 
         fontSize=10; //new changed size 
        } 

        textView.setText(body[Position]); 
        System.out.println("fontsasss="+font); 
        //2. set the new font size 
        textView.setTextSize(fontSize); 

        //3. for future 
        isFontChanged = !isFontChanged; 
       } 
      }); 

제안이 유지 // 1.을 익명의 클라스를 만드는 것은 결코 좋은 생각이 아닙니다. 대신 나는 그것이 매우 최적화되지 않은 생각보다이 완전한의 getView 기능의 경우

img.setOnClickListener(this); 

2를 사용하여 통증을 어댑터에 OnClickListener를 구현하고 저장할 수 있습니다 여러 번 즉의 getView 을 호출되는 함수 내부 SS. 이 example을 참조하십시오.

0
여기

메소드 TextView.setTextSize (INT 단위 , int size); 두 가지 매개 변수를 취했습니다.

text.setTextSize (TypedValue.COMPLEX_UNIT_SP, 9);

http://developer.android.com/reference/android/util/TypedValue.html#COMPLEX_UNIT_DIP

http://developer.android.com/reference/android/widget/TextView.html#setTextSize%28int,%20float%29

+0

감사합니다 Jatin Patel ..이 개념 만 사용하는 경우 ... 사용자가 처음으로 글꼴을 변경하는 경우 ..하지만 사용자가 동일한 버튼을 다시 클릭하면 이전 글꼴로 설정되지 않습니다. 제발 내 질문, 그 textview.settext (크기)를 사용 ... – Subburaj