0

更改TEXTSIZE的值在列表视图谁能帮助我?我想改变文字大小在列表视图中class.i宣布其他类变量作为 公共静态TextView的标题,然后我用类fragment.title.setTextSize(30)改变 TEXTSIZE的值当我点击 不同片段 回其他活动不work.here我的代码:不能在不同的片段类

public class Setting extends AppCompatActivity { 

    private RadioGroup Text_Size; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_setting); 

     Text_Size = (RadioGroup) findViewById(R.id.radiogroup); 

     Text_Size.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 
      @Override 
      public void onCheckedChanged(RadioGroup group, int checkedId) { 

       switch (checkedId) 
       { 
        case R.id.small: 
         HotNewsFrag.title.setTextSize(15); 
         break; 
        case R.id.medium: 
         HotNewsFrag.title.setTextSize(20); 
         break; 
        case R.id.big: 
         HotNewsFrag.title.setTextSize(30); 
         break; 
        default: 
         break; 
       } 
      } 
     }); 

     LinearLayout back=(LinearLayout)findViewById(R.id.back1); 
     back.setOnClickListener(new View.OnClickListener(){ 
      @Override 
      public void onClick(View v) { 
       Intent setting = new Intent(Setting.this,MainActivity.class); 
       startActivity(setting); 
      } 
     }); 

    } 
}
 
Here my fragment 
 

public class HotNewsFrag extends Fragment { 


    private View view; 
    private ListView listOfNews; 
    ListViewAdapter adapter; 
    ArrayList arraylist1; 
    public static String newsid; 
    public static TextView title; 
} 


+0

请添加代码的片段,以及。这将是更容易帮助 – Fourth

+0

这儿有code..it的困难很多张贴 – Nico

回答

0

你正在处理这个问题的方法是完全错误的。

大问题: 将静态文本视图定义会导致内存泄漏并阻止您的视图和活动被垃圾收集。

这里有两种方法:

FIRST:共享偏好及的onResume

你可以存储文本大小的sharedPreference和您的活动或片段,您可以覆盖的onResume并设置文字大小,我们再次textsview由您之前

第二个存储在sharedPreference值:广播接收机

您可以使用广播接收机并将其注册到任何地方。无论用户何时更改文字大小,您都可以发送本地广播并在注册该文字时更改文字大小。

Text_Size.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(RadioGroup group, int checkedId) { 
      int txtSize=0; 
      switch (checkedId) 
      { 
       case R.id.small: 
        txtSize=15; 
        break; 
       case R.id.medium: 
        txtSize=20; 
        break; 
       case R.id.big: 
        txtSize=30; 
        break; 
       default: 
        break; 
      } 
       Setting.this.getSharedPreferences("MY_SHARED",0).edit().putInt("FONT_SIZE",txtSize).commit(); 
     } 
    }); 

在您的片段

@Override 
public void onResume() { 
    super.onResume(); 
    title.setTextSize(getActivity().getSharedPreferences("MY_SHARED",0).getInt("FONT_SIZE",20)); 
    ADAPTER_OF_YOUR_LISTVIEW.notifyAll(); 
} 
+0

我尝试用你的意见,但它不工作,我不知道我是对的或not..can你给我一个代码 – Nico

+0

exmple非常感谢你much.it作品.. – Nico

+0

但是当我的列表视图的项目点击它的工作原理。 – Nico

0

如果你只是想文本成为强调的,请尝试使用SetTypeFace.BOLD

相关问题