【问题标题】:How to change textsize(fontsize) in customlistview?如何更改自定义列表视图中的文本大小(字体大小)?
【发布时间】:2011-08-28 17:41:32
【问题描述】:

我尝试在我的应用中更改 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;

【问题讨论】:

    标签: android listview font-size


    【解决方案1】:

    ListView 行的XML 中,您需要将ID 添加到有问题的TextViews。然后,你需要更换:

    //here I need to change textSize
    

    with(假设您希望文本大小为 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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-25
      • 1970-01-01
      • 2013-01-06
      • 1970-01-01
      • 2017-06-19
      • 2013-08-25
      • 1970-01-01
      相关资源
      最近更新 更多