簡體   English   中英

如何在customlistview中更改textsize(fontsize)?

[英]How to change textsize(fontsize) in customlistview?

我試圖在我的應用程序中更改textSize。 我想更改我的customlistview的textSize。 我的listview的行XML文件具有圖像3 textView。 當用戶單擊Optionmenu,然后單擊AlertDialog的SingleChoiceItems復選框時,我想更改textView的textSize。

這是我的代碼。

我需要更改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;

在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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM