【问题标题】:Unable to change TextView size on button click, why?单击按钮时无法更改 TextView 的大小,为什么?
【发布时间】:2015-06-20 11:18:33
【问题描述】:

大家好,我现在正在开发一个应用程序,其中有很多引号,在 TextView 中,我想在单击按钮时更改 TextView 的大小,例如单击小按钮然后单击 @ 987654323@ 应该变小,如果点击大它应该变大,等等。但是每次我按下Button 应用程序强制关闭!有什么问题?这是OnClickListenerButton

small = (Button) findViewById(R.id.small);

small.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                TextView tv = (TextView)findViewById(R.id.quotes);
                tv.setTextSize(20);
            }
        });

P.S:TextViewButton 在不同的Activities 中。

【问题讨论】:

  • TextView 和 Button 在不同的活动中?然后它就不起作用了,因为 findViewById 被挂钩到一个 Activity 的布局。
  • 这个问题有什么解决办法吗?
  • 请提供更多信息。例如,可以通过使用 Intent.putExtra、LocalBroadcastManager 和 EventBus 库来改变一个活动中发生的事情。也可以在 SharedPreferences 中设置首选字体大小。这完全取决于您的情况。

标签: android button textview text-size


【解决方案1】:

无法将TextView 的大小从一个Activity 更改为Button 到另一个Activity。您将获得NullPointerException,因为 findViewById 方法将找不到视图并返回 null。你应该使用SharedPreferences。当您单击Button 并在第二个Activity 中阅读时,您应该保存文本大小值。

在您的设置活动中:

   small.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(YourActivity.this.getBaseContext());
            sharedPreferences.edit()
            .putFloat("FONT_SIZE", 22)
            .apply();
        }
    });

在您拥有 TextView 的活动中

     TextView tv = (TextView)findViewById(R.id.quotes);
     SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(YourActivity.this.getBaseContext());
     tv.setTextSize(sharedPreferences.getFloat("FONT_SIZE", 13/*DEFAULT VALUE*/));

【讨论】:

  • 有什么解决办法吗?请告诉我,因为从 2 个月开始,我正在开发这个应用程序......非常感谢!
  • 您也可以在一些单例中设置您的值,但您的问题听起来像是一些设置。如果你想创建类似设置的东西,这是一个正确的解决方案
  • 所以这个解决方案适合你。你知道怎么做吗?如果你愿意,我可以给你一些例子
  • 哦,非常感谢!!!如果你举个例子,我真的很感激 :-) 给我一个例子,我一定会接受的!
猜你喜欢
  • 1970-01-01
  • 2013-01-03
  • 2021-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多