Android 无法在单击按钮时更改文本视图大小,原因是什么?
大家好,我现在正在开发一个应用程序,其中有许多引号,在Android 无法在单击按钮时更改文本视图大小,原因是什么?,android,button,textview,text-size,Android,Button,Textview,Text Size,大家好,我现在正在开发一个应用程序,其中有许多引号,在TextView中,我想更改按钮单击时TextView的大小,比如如果单击小按钮,则TextView应该变小,如果单击大,则应该变大,等等。但每次我按下按钮应用程序强制关闭!有什么问题吗?以下是按钮的OnClickListener: small = (Button) findViewById(R.id.small); small.setOnClickListener(new View.OnClickListener() {
TextView
中,我想更改按钮单击时TextView
的大小,比如如果单击小按钮,则TextView
应该变小,如果单击大,则应该变大,等等。但每次我按下按钮
应用程序强制关闭!有什么问题吗?以下是按钮的OnClickListener
:
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);
}
});
注意:文本视图
和按钮
处于不同的活动
无法通过按钮
从另一个活动
中的一个活动
更改文本视图
的大小。您将获得NullPointerException
,因为findViewById方法将找不到视图,并将返回null。您应该使用SharedReferences
。单击按钮
并在第二个活动
中读取时,应保存文本大小值
在设置活动中:
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 tv = (TextView)findViewById(R.id.quotes);
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(YourActivity.this.getBaseContext());
tv.setTextSize(sharedPreferences.getFloat("FONT_SIZE", 13/*DEFAULT VALUE*/));
文本视图和按钮处于不同的活动中?因为findViewById连接到一个活动的布局,所以它将不起作用。对此问题有任何解决方案吗?请提供更多信息。例如,可以通过使用Intent.putExtra、LocalBroadcastManager和EventBus库从一个活动更改另一个活动中发生的内容。也可以在SharedReferences中设置类似首选字体大小的内容。这完全取决于你的情况。有什么解决办法吗?请告诉我,因为从2个月以来我一直在开发这个应用程序…非常感谢!您也可以在一些单例中设置您的值,但您的问题听起来像是一些设置。如果您想创建类似设置的内容,它是一个正确的解决方案,因此此解决方案适合您。你知道这是怎么做到的吗?如果你愿意,我可以给你举个例子,非常感谢!!!如果你举个例子,我真的很感激:-)给我举个例子,我一定会接受!