java - 不能改变整型变量的值
问题描述
@RequiresApi(api = Build.VERSION_CODES.O)
public class MainActivity extends AppCompatActivity {
TextSwitcher textSwitcherage, textSwitcherGender;
Button nextButton, previousButton, nextButton2, previousButton2;
String[] age = {"U-4","Kid","Teen","Adult","Old"};
String[] gender = {"Male","Female","Other"};
TextView textView;
Typeface typeface;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
defVars();
}
public void defVars()
{
textSwitcherGender = findViewById(R.id.textSwitcherGender);
textSwitcherage = findViewById(R.id.textSwitcherage);
nextButton = findViewById(R.id.nextButton1);
nextButton2 = findViewById(R.id.nextButton2);
previousButton = findViewById(R.id.previousButton1);
previousButton2 = findViewById(R.id.previousButton2);
typeface = getResources().getFont(R.font.lettersforlearners);
nextAndPreviousButtons(nextButton,previousButton,textSwitcherage,age,0);
nextAndPreviousButtons(nextButton2, previousButton2, textSwitcherGender, gender,0);
}
public void nextAndPreviousButtons(Button buttonNext, Button buttonPrevious, final TextSwitcher textSwitcher, final String[] data, final Integer stringIndex)
{
buttonNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(stringIndex == data.length - 1)
{
stringIndex = 0;
textSwitcher.setText(data[stringIndex]);
}
else
{
textSwitcher.setText(data[++stringIndex]);
}
}
});
buttonPrevious.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(stringIndex==0)
{
stringIndex = data.length-1;
textSwitcher.setText(data[stringIndex]);
}
else
{
textSwitcher.setText(data[--stringIndex]);
}
}
});
textSwitcher.setFactory(new ViewSwitcher.ViewFactory() {
@Override
public View makeView() {
textView = new TextView(MainActivity.this);
textView.setTypeface(typeface);
textView.setTextColor(Color.BLACK);
textView.setTextSize(40);
textView.setGravity(Gravity.CENTER_HORIZONTAL);
return textView;
}
});
textSwitcher.setText(data[stringIndex]);
}
}
我有一个错误:
“错误:无法为最终变量 stringIndex 赋值”
我设置了stringIndex
决赛,但仍然遇到了这个问题。我不知道。我必须为 stringIndex 定义整数变量吗?或者我应该删除 stringIndex final?我需要为每个函数定义单独的 stringIndex 变量
解决方案
如果你声明final Integer stringIndex...
,那么你就完成了!这就是保留字 final... 的概念和含义...是您无法在...之后重新分配的对象
public void nextAndPreviousButtons(Button buttonNext, Button buttonPrevious,
final TextSwitcher textSwitcher, final String[] data, Integer stringIndex)
推荐阅读
- optimization - 优化已找到全局最小值,但收敛到局部最小值
- google-sheets - 过滤和排序结果,忽略没有数据的行,具有 2、3 或 4 个条件
- coq - 与列表中数字计数有关的引理
- limesurvey - LimeSurvey 自定义结果页面
- angular - 错误:“void”类型上不存在属性“then”
- typescript - 元素隐式具有“任何”类型,因为索引表达式不是“数字”类型。- 索引签名错误
- php - 错误 405 - 不允许 | Wordpress 网站托管在 github 页面上,Xampp 服务器位于本地计算机上
- react-select - React-Select 返回值而不是整个选项对象
- python - 我无法安装此存储库
- python - AttributeError:“str”对象没有属性“float”