如何在微调器之间传递选定的微调器项目?
How to pass a selected spinner item between spinners?
经过彻底的搜索和思考,我在AndroidStudio中找不到解决以下问题的方法:
我有 2 个微调器(输入和输出)。我想将输入微调器的值传递给在选择输出微调器 (onItemSelected) 的值时调用的方法。有关代码段如下所示:
private void setupSpinnerListeners() {
spinnerLengthInput.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String itemSelectedInSpinnerLengthInput = parent.getItemAtPosition(position).toString();
checkIfConvertingFromMeter(itemSelectedInSpinnerLengthInput);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
spinnerLengthOutput.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String itemSelectedInSpinnerLengthOutput = parent.getItemAtPosition(position).toString();
updateOutputTextfield(itemSelectedInSpinnerLengthInput, itemSelectedInSpinnerLengthOutput);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
我希望 String itemSelectedInSpinnerLengthInput(从输入微调器获取其值)在输出微调器的 onItemSelected 方法中可用。如何做到这一点?
非常感谢任何帮助。
编辑:在 setupSpinnerListeners 方法中创建一个全局变量,这是一个长度为 1 的数组。它将按我的预期工作。
我推荐你使用OnItemSelectedListener
。
然后创建一个 globalVariable 以将 String
设置为您的第一个 Spinner
,如下所示:
String FirstValue = "";
然后你需要这样调用:
spinnerLengthInput.setOnItemSelectedListener(this);
spinnerLengthOutput.setOnItemSelectedListener(this);
当然你需要implements OnItemSelectedListener
然后在里面你可以做同样的事情。
@Override
public void onItemSelected(AdapterView<?> spinner, View view, int position,long id)
{
FirstValue = spinner.getItemAtPosition(position).toString();
checkIfConvertingFromMeter(itemSelectedInSpinnerLengthInput);
}
然后在您的另一个 Spinner
中使用 FirstValue
值。
您应该将 itemSelectedInSpinnerLengthOutput 更改为全局变量。之后,您可以在输出微调器的 onItemSelected 方法中轻松访问它
String itemSelectedInSpinnerLengthInput; // global variable
private void setupSpinnerListeners() {
spinnerLengthInput.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
itemSelectedInSpinnerLengthInput = parent.getItemAtPosition(position).toString();
checkIfConvertingFromMeter(itemSelectedInSpinnerLengthInput);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
spinnerLengthOutput.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String itemSelectedInSpinnerLengthOutput = parent.getItemAtPosition(position).toString();
if(itemSelectedInSpinnerLengthInput != null){
updateOutputTextfield(itemSelectedInSpinnerLengthInput, itemSelectedInSpinnerLengthOutput);
}else{
Toast.makeText(getApplicationContext(), "please select input", Toast.LENGTH_LONG).show();
...
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
希望对您有所帮助
经过彻底的搜索和思考,我在AndroidStudio中找不到解决以下问题的方法:
我有 2 个微调器(输入和输出)。我想将输入微调器的值传递给在选择输出微调器 (onItemSelected) 的值时调用的方法。有关代码段如下所示:
private void setupSpinnerListeners() {
spinnerLengthInput.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String itemSelectedInSpinnerLengthInput = parent.getItemAtPosition(position).toString();
checkIfConvertingFromMeter(itemSelectedInSpinnerLengthInput);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
spinnerLengthOutput.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String itemSelectedInSpinnerLengthOutput = parent.getItemAtPosition(position).toString();
updateOutputTextfield(itemSelectedInSpinnerLengthInput, itemSelectedInSpinnerLengthOutput);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
我希望 String itemSelectedInSpinnerLengthInput(从输入微调器获取其值)在输出微调器的 onItemSelected 方法中可用。如何做到这一点? 非常感谢任何帮助。
编辑:在 setupSpinnerListeners 方法中创建一个全局变量,这是一个长度为 1 的数组。它将按我的预期工作。
我推荐你使用OnItemSelectedListener
。
然后创建一个 globalVariable 以将 String
设置为您的第一个 Spinner
,如下所示:
String FirstValue = "";
然后你需要这样调用:
spinnerLengthInput.setOnItemSelectedListener(this);
spinnerLengthOutput.setOnItemSelectedListener(this);
当然你需要implements OnItemSelectedListener
然后在里面你可以做同样的事情。
@Override
public void onItemSelected(AdapterView<?> spinner, View view, int position,long id)
{
FirstValue = spinner.getItemAtPosition(position).toString();
checkIfConvertingFromMeter(itemSelectedInSpinnerLengthInput);
}
然后在您的另一个 Spinner
中使用 FirstValue
值。
您应该将 itemSelectedInSpinnerLengthOutput 更改为全局变量。之后,您可以在输出微调器的 onItemSelected 方法中轻松访问它
String itemSelectedInSpinnerLengthInput; // global variable
private void setupSpinnerListeners() {
spinnerLengthInput.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
itemSelectedInSpinnerLengthInput = parent.getItemAtPosition(position).toString();
checkIfConvertingFromMeter(itemSelectedInSpinnerLengthInput);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
spinnerLengthOutput.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String itemSelectedInSpinnerLengthOutput = parent.getItemAtPosition(position).toString();
if(itemSelectedInSpinnerLengthInput != null){
updateOutputTextfield(itemSelectedInSpinnerLengthInput, itemSelectedInSpinnerLengthOutput);
}else{
Toast.makeText(getApplicationContext(), "please select input", Toast.LENGTH_LONG).show();
...
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
希望对您有所帮助