gpt4 book ai didi

java - 如何从微调监听器访问变量?

转载 作者:行者123 更新时间:2023-11-29 04:28:09 25 4
gpt4 key购买 nike

我有以下代码,我想在其中访问按钮监听器中的“selectedTeam”。

        //Adding setOnItemSelectedListener method on spinner.
sTeams.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
selectedTeam = parent.getItemAtPosition(position).toString();
editText.setText(selectedTeam, TextView.BufferType.EDITABLE);
}

@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});

buttonApply.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
String editedName = editText.getText().toString();
// Here I want to access selectedTeam
}
});

我试图在方法外部声明变量,但这给出了错误“变量‘selectedTeam’是从内部类中访问的,需要声明为最终的”。我试过了,但这不起作用,因为无法更改最终字符串。

最佳答案

改用类成员

JLS 8.1.3. Inner Classes and Enclosing Instances :

When an inner class (whose declaration does not occur in a static context) refers to an instance variable that is a member of a lexically enclosing class, the variable of the corresponding lexically enclosing instance is used.

Any local variable, formal parameter, or exception parameter used but not declared in an inner class must be declared final.

这意味着您只能在匿名 内部使用外部 final 变量或封闭类成员类。

[...]
private String selectedTeam;
[...]

//Adding setOnItemSelectedListener method on spinner.
sTeams.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
selectedTeam = parent.getItemAtPosition(position).toString();
editText.setText(selectedTeam, TextView.BufferType.EDITABLE);
}

@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});

buttonApply.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
String editedName = editText.getText().toString();
if (selectedTeam != null && !"".equals(selectedTeam)) {
// Do something
}
}
});

关于java - 如何从微调监听器访问变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45184445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com