2011-05-19 92 views
0

我試圖在我的應用程序中更改textSize。 我想改變我的customlistview的textSize。 我的listview的行XML文件有圖像,3個textView。 我想在用戶單擊Optionmenu時更改textView的textSize,然後單擊AlertDialog的SingleChoiceItems複選框。如何更改自定義列表視圖中的文本大小(字體大小)?

這是我的代碼。

我需要改變XML文件?.. 那我該怎麼設置我的customAdapter?.. 我需要改變我的適配器的getView方法?

我接受任何答案。

public boolean onOptionsItemSelected(MenuItem item){ 
    switch(item.getItemId()){ 

     case R.id.ks_notice_menu_textsize: 

      final CharSequence[] items = {"normal", "big", "bigger"}; 
      AlertDialog.Builder builder = new AlertDialog.Builder(this); 
      builder.setTitle("select textSize"); 
      builder.setSingleChoiceItems(items, mSelect, 
        new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 
        mSelect = which; 
       } 
      }); 

      builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int whichButton) { 



        int textSize = (int)Username.getTextSize(); 
        switch(mSelect){ 
        case 0:  

         //here I need to change textSize 

         break; 
        case 1: 
         //here I need to change textSize 
         break;       


        case 2: 
         //here I need to change textSize 
         break; 
        } 



       } 
      }); 
      builder.setNegativeButton("cancel", null); 
      builder.show(); 
      return true;  
    } 
    return false; 

回答

0

在你的XML爲ListView的行,你需要的ID在問題添加到TextView秒。然後,你需要更換:

//here I need to change textSize 

(假設你想的5文字大小):

customAdapter.setTextSize(5); 

最後,在你的customAdapter您需要實現一個setTextSize(int)方法檢索所有查看並將其文本大小設置爲傳遞的值。它還需要存儲該值,並將其用於在用戶向下滾動時創建的任何新視圖。

喜歡的東西:

public void setTextSize(final int textSize) { 
    fTextSize = textSize; 

    for (View view : fViews) { 
     ((TextView) view.findViewById(R.id.list_view_text_1).setTextSize(textSize); 
     ((TextView) view.findViewById(R.id.list_view_text_2).setTextSize(textSize); 
     ((TextView) view.findViewById(R.id.list_view_text_3).setTextSize(textSize); 
    } 
} 

和:

public View getView(final int position, final View convertView, final ViewGroup parent) { 
    View view = // retrieve your view from XML. 
    fViews.add(view); 
    ((TextView) view.findViewById(R.id.list_view_text_1).setTextSize(textSize); 
    ((TextView) view.findViewById(R.id.list_view_text_2).setTextSize(textSize); 
    ((TextView) view.findViewById(R.id.list_view_text_3).setTextSize(textSize); 

    return (view); 
} 
相關問題