我正在尝试从 converter
类中检索在 spinnerSelects
类中选择的微调项目,但没有显示日志或 Taost 文件。为什么会发生这种情况?我还可以将非 Activity 类 spinnerSelects
的上下文传递给另一个非 Activity 类,例如 converter
类??
下面是我的 spinnerSelects.java
类:
package com.gazzali.spinitmeow;
import android.content.Context;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;
public class spinnerSelects implements AdapterView.OnItemSelectedListener{
protected Spinner spinnerInputChoice, spinnerOutputChoice;
protected ArrayAdapter<CharSequence> adapterInputChoice, adapterOutputChoice;
private Context context;
public Context getContext() {
return context;
}
public spinnerSelects() {
getContext();
}
public spinnerSelects(Spinner spinnerInputChoiceFromMain, Spinner spinnerOutputChoiceFromMain) {
this.spinnerInputChoice = spinnerInputChoiceFromMain;
this.spinnerOutputChoice = spinnerOutputChoiceFromMain;
}
/**
*
* @param selectedMainChoice String retrieves Main Conversion spinner's type
* @param contextFromMain Context retrieves context from MainActivity
*/
public void setInputOutputSpinners(String selectedMainChoice, Context contextFromMain) {
switch (selectedMainChoice)
{
case "Length": {
adapterInputChoice = ArrayAdapter.createFromResource(contextFromMain,
R.array.LengthChoices_array, android.R.layout.simple_spinner_item);
adapterOutputChoice = ArrayAdapter.createFromResource(contextFromMain,
R.array.LengthChoices_array, android.R.layout.simple_spinner_item);
setInputOutputListenerAndDropDownAndAdapter();
}
break;
case "Temperature": {
adapterInputChoice = ArrayAdapter.createFromResource(contextFromMain,
R.array.TemperatureChoices_array, android.R.layout.simple_spinner_item);
adapterOutputChoice = ArrayAdapter.createFromResource(contextFromMain,
R.array.TemperatureChoices_array, android.R.layout.simple_spinner_item);
setInputOutputListenerAndDropDownAndAdapter();
}
break;
case "Weight": {
adapterInputChoice = ArrayAdapter.createFromResource(contextFromMain,
R.array.WeightChoices_array, android.R.layout.simple_spinner_item);
adapterOutputChoice = ArrayAdapter.createFromResource(contextFromMain,
R.array.WeightChoices_array, android.R.layout.simple_spinner_item);
setInputOutputListenerAndDropDownAndAdapter();
}
break;
}
}
private void setInputOutputListenerAndDropDownAndAdapter() {
adapterInputChoice.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerInputChoice.setAdapter(adapterInputChoice);
adapterOutputChoice.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerOutputChoice.setAdapter(adapterOutputChoice);
}
public Spinner getSpinnerInputChoice() {
return spinnerInputChoice;
}
public Spinner getSpinnerOutputChoice() {
return spinnerOutputChoice;
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}
和converter.java
类:
package com.gazzali.spinitmeow;
import android.content.Context;
import android.util.Log;
import android.widget.Spinner;
import android.widget.Toast;
public class converter {
private Context contextInConverter;
protected String selectedMainChoice, inputChoice, outputChoice;
protected Spinner spinnerInputChoice, spinnerOutputChoice;
public converter(Context contextFromMain, String selectedMainChoiceFromMain) {
this.selectedMainChoice = selectedMainChoiceFromMain;
/*Toast.makeText(contextFromMain, selectedMainChoice, Toast.LENGTH_SHORT).show();*/
/*Log.i("Main Choice is", selectedMainChoice);*/
}
public void setInputOutputChoice(Spinner spinnerInputChoiceFromSpinnerSelects, Spinner spinnerOutputChoiceFromSpinnerSelcts){
spinnerSelects spinnerSelectsInConverter = new spinnerSelects();
spinnerInputChoice = spinnerSelectsInConverter.getSpinnerInputChoice();
inputChoice = spinnerInputChoice.getSelectedItem().toString();
contextInConverter = spinnerSelectsInConverter.getContext();
/* No Toast or Log showing up */
Toast.makeText(contextInConverter, inputChoice, Toast.LENGTH_SHORT).show();
Log.i("Sub Choices are:", inputChoice);
}
}
请帮助我。
最佳答案
我在 spinnerSelects
类中没有看到任何 converter
实例化。
看起来您没有调用您的方法,因此您不会看到任何 Toast
。
你需要做这样的事情:
ConvertorClass convertor = new Convertor();
convertor.yourMethod();
关于java - Android 中的 2 个类中交换数据时没有显示 Log 或 Toast,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57130894/