Как изменить размер текста (размер шрифта) в customlistview? - PullRequest
0 голосов
/ 19 мая 2011

Я пытался изменить textSize в моем приложении. Я хочу изменить textSize моего customlistview. У файла XML строки моего списка просмотра есть изображение, 3 textView. Я хочу изменить textSize textView, когда пользователь нажимает Optionmenu и устанавливает флажок SingleChoiceItems AlertDialog.

вот мой код.

Нужно ли менять файл 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;

1 Ответ

0 голосов
/ 19 мая 2011

В вашем XML для строки ListView необходимо добавить идентификаторы к TextView s, о которых идет речь. Затем вам необходимо заменить:

//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);
}
...