java - Android 中的 2 个类中交换数据时没有显示 Log 或 Toast

标签 java android

我正在尝试从 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/

相关文章:

java - PrepareStatement 错误

java - 将 join 放在主线程上意外行为

java - 键绑定(bind)不起作用,未执行操作

android - 如何停止 watchPosition() 位置检索超时错误?

c# - 在 Xamarin Android 中连接到外部数据库

java - Spring Security - 动态禁用安全性

java - 添加 lombok 依赖项和 @Slf4j 不允许使用记录器

android - AppCompat 库对我来说似乎无法正常工作

android - 禁用 admob 调试消息

android - 如何在android中将底部阴影添加到选项卡布局或工具栏