java - 搜索栏已保存但没有文本
问题描述
我试图创建一个由搜索栏、共享首选项和文本组成的活动。
只是简单的想法,因为我仍在学习这一点。
这个想法是创建一个搜索栏,随着文本大小的增加,包括用于保存当前大小的共享首选项。
但是,唯一保存的是搜索栏进度,而不是文本。任何人都可以提供帮助,或者给我一些想法,因为我对此仍然很陌生。
这里是java
import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.MenuItem;
import android.widget.SeekBar;
import android.widget.TextView;
import com.google.android.material.navigation.NavigationView;
public class fontsize extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener{
int textSize = 30;
TextView textViewFont, textViewSize;
SharedPreferences sharedPreferences;
SharedPreferences.Editor editor;
//variablesmenudrawer
DrawerLayout drawerLayout;
NavigationView navigationView;
Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fontsize);
sharedPreferences = getSharedPreferences("fontresize", MODE_PRIVATE);
editor = sharedPreferences.edit();
int progress = sharedPreferences.getInt("progress", 0);
//definingtextview
textViewFont = findViewById(R.id.textViewFont);
textViewSize = findViewById(R.id.textViewSize);
//seekbar
SeekBar seekBar = findViewById(R.id.seekbar);
textViewFont.setTextSize(textSize); // size 30sp
textViewSize.setText(seekBar.getProgress() + "/" + seekBar.getMax()); // 0/30
seekBar.setProgress(progress);
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
int progressNew = 0;
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
textSize = textSize + (progress - progressNew);
progressNew = progress;
textViewFont.setTextSize(textSize);
editor.putInt("progress", progress);
editor.apply();
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
//definingmenudrawer
drawerLayout = findViewById(R.id.drawer_layout4);
navigationView = findViewById(R.id.nav_view4);
toolbar = findViewById(R.id.toolbar4);
//toolbar
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
//toolbar.setNavigationIcon(R.drawable.ic_toolbar);
toolbar.setTitle("");
toolbar.setSubtitle("");
//toolbar.setLogo(R.drawable.ic_toolbar);
toolbar.setNavigationIcon(R.drawable.ic_baseline_dehaze_24);
//navdrawermenu
navigationView.bringToFront();
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawerLayout.addDrawerListener(toggle);
toggle.syncState();
navigationView.setNavigationItemSelectedListener(this);
navigationView.setCheckedItem(R.id.nav_home);
}
@Override
public void onBackPressed() {
if (drawerLayout.isDrawerOpen(GravityCompat.START)) {
drawerLayout.closeDrawer(GravityCompat.START);
}
else {
super.onBackPressed();
}
}
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
switch (menuItem.getItemId()) {
case R.id.nav_home:
Intent intent = new Intent(fontsize.this, home.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
case R.id.nav_fontsize:
}
drawerLayout.closeDrawer(GravityCompat.START);
return true;
}
}
非常感谢您。
解决方案
我设法找到了答案。我知道这只是简单的新手错误。所以在这里
textViewFont.setTextSize(textSize); // size 30sp
在这一行中,我必须添加getProgress
才能将settextsize
值包含在进度中。
所以一定是
textViewFont.setTextSize(textSize+seekBar.getProgress()); // size 30sp
推荐阅读
- mysql - 使用 Spring Boot 的 Mysql 的 Hikari 配置
- dynamics-ax-2012 - AX 2012 中的补丁 DLL
- excel - VBA-excel中的正确数字格式
- bash - 在 Shell 的循环中创建和使用相同变量的动态变量
- c++ - 如何通过 TCP 套接字检测 STX?
- excel - VBA Excel - 通过 Internet Explorer 从地址获取地理坐标
- json - Azure 上的规则引擎
- python - 在 python 3.x 中通过字典循环列表
- laravel - Google Cloud App Engine Standard 不支持 gzip?
- regex - 在word/VBA中查找多个大写字母的单词