当前位置: 首页 > 知识库问答 >
问题:

Java - 逐个微调器更改微调器的值

荣晨朗
2023-03-14

我正试图让一个旋转器(2)改变另一个旋转器(1)的内容。

我当前在第二个微调器的数组适配器中遇到错误“错误:(28,57)错误:无法推断数组适配器的类型参数

这是我的代码:

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

public class DetailsForm extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.details_form);

        final Spinner carBrand = (Spinner) findViewById(R.id.carBrand);
        String[] items = new String[]{"Honda", "Nissan", "Toyota"};
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, items);
        carBrand.setAdapter(adapter);
        carBrand.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id){
            String carBrand = parent.getSelectedItem().toString();
                if (carBrand.equals("Nissan")) {
                    final Spinner model = (Spinner) findViewById(R.id.model);
                    String[] models = new String[]{"S14", "R34", "240SX"};
                    ArrayAdapter<String> modeladapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, models);
                    model.setAdapter(modeladapter);

                } else if (carBrand.equals("Honda")) {
                    Spinner model = (Spinner) findViewById(R.id.model);
                    String[] models = new String[]{"Civic", "NSX", "Accord"};
                    ArrayAdapter<String> modeladapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, models);
                    model.setAdapter(modeladapter);
                } else if (carBrand.equals("Toyota")) {
                    Spinner model = (Spinner) findViewById(R.id.model);
                    String[] models = new String[]{"Supra", "AE86", "GT86"};
                    ArrayAdapter<String> modeladapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, models);
                    model.setAdapter(modeladapter);
                }
            }

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

            }
        });

任何帮助都将不胜感激。

共有2个答案

阮昊阳
2023-03-14

您必须传递当前活动的上下文。在这一行中,将this更改为DetailsForm.this:

ArrayAdapter<String> modeladapter = new ArrayAdapter<>(DetailsForm.this, android.R.layout.simple_spinner_dropdown_item, models);
桂嘉年
2023-03-14

更改您的代码

出发地:

        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id){
            String carBrand = parent.getSelectedItem().toString();
            if (carBrand.equals("Nissan")) {
                final Spinner model = (Spinner) findViewById(R.id.model);
                String[] models = new String[]{"S14", "R34", "240SX"};
                ArrayAdapter<String> modeladapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, models);
                model.setAdapter(modeladapter);

            } else if (carBrand.equals("Honda")) {
                Spinner model = (Spinner) findViewById(R.id.model);
                String[] models = new String[]{"Civic", "NSX", "Accord"};
                ArrayAdapter<String> modeladapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, models);
                model.setAdapter(modeladapter);
            } else if (carBrand.equals("Toyota")) {
                Spinner model = (Spinner) findViewById(R.id.model);
                String[] models = new String[]{"Supra", "AE86", "GT86"};
                ArrayAdapter<String> modeladapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, models);
                model.setAdapter(modeladapter);
            }
        }

收件人:

        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id){
            String carBrand = parent.getSelectedItem().toString();
            if (carBrand.equals("Nissan")) {
                final Spinner model = (Spinner) findViewById(R.id.model);
                String[] models = new String[]{"S14", "R34", "240SX"};
                ArrayAdapter<String> modeladapter = new ArrayAdapter<>(YourActivity.this, android.R.layout.simple_spinner_dropdown_item, models);
                model.setAdapter(modeladapter);

            } else if (carBrand.equals("Honda")) {
                Spinner model = (Spinner) findViewById(R.id.model);
                String[] models = new String[]{"Civic", "NSX", "Accord"};
                ArrayAdapter<String> modeladapter = new ArrayAdapter<>(YourActivity.this, android.R.layout.simple_spinner_dropdown_item, models);
                model.setAdapter(modeladapter);
            } else if (carBrand.equals("Toyota")) {
                Spinner model = (Spinner) findViewById(R.id.model);
                String[] models = new String[]{"Supra", "AE86", "GT86"};
                ArrayAdapter<String> modeladapter = new ArrayAdapter<>(YourActivity.this, android.R.layout.simple_spinner_dropdown_item, models);
                model.setAdapter(modeladapter);
            }
        }

YourActive是您的活动类名。此更改是必要的,因为在OnItemSelectedListener中,表示监听器的对象,该对象与上下文的类型不同,您需要上下文活动的对象引用才能调用ArrayAdapter构造函数。此解决方案应该适合您。

 类似资料:
  • 我正在开发一个android应用程序,在活动中我有三个领域:1。手机号码2。微调器3。微调器 用户输入手机号码后,我想更改微调器项目的颜色。 有人能告诉我怎么做吗?提前谢谢。

  • 在我的应用程序中,我需要获取微调器的值。例如,我有一个用string-array (strings.xml)填充的微调器“city ”,用户在微调器中选择一个值,例如“faade du poste extérieur ”,我必须以与“faade du poste extérieur”值链接的id形式检索微调器的值。 例如,当用户选择“Façade du poste extérieur”时,如何检索

  • 如前所述(如何在Android系统中制作圆形自定义进度条在我的项目中使用https://github.com/Todd-Davies/ProgressWheel库。我正在开发具有不同级别集的游戏应用程序。我使用圆形进度条作为计时器。一旦用户获得高分,我想改变旋转速度。 请检查这里的图像示例。(如何创建圆形进度条(饼图)像指示器-Android)。我没有得到正确的解决方案来固定时间限制以及使用进度条

  • 我有一个微调器,由字符串数组填充。xml,用户将其设置为某物,我将其保存到首选项-我希望在打印字符串时保存字符串,而不是位置。现在,当用户返回时,我想将微调器设置为先前选择的值。 如果我做了 这是可行的,但工作室警告我不要随意选角。有没有正确而漂亮的方法可以做到这一点?或者我必须从字符串资源数组中创建ArrayAdapter并在那里搜索吗?

  • 我们有一个使用Spring boot编写的微服务,它有自己的NoSQL数据存储。我们正在开发功能,希望删除一些旧数据(数量为50万个文档),并希望根据数据存储中存在的特定类型的记录定期(每天一次)删除这些数据。 拥有一个每天运行一次并进行删除的调度程序是正确的方法吗?另外,由于它是一个微服务,并且它的几个实例将运行,我们如何控制这个调度程序仅在一个实例上运行?

  • 在前面的一些章节中,我们介绍了如何在只有6万张图像的Fashion-MNIST训练数据集上训练模型。我们还描述了学术界当下使用最广泛的大规模图像数据集ImageNet,它有超过1,000万的图像和1,000类的物体。然而,我们平常接触到数据集的规模通常在这两者之间。 假设我们想从图像中识别出不同种类的椅子,然后将购买链接推荐给用户。一种可能的方法是先找出100种常见的椅子,为每种椅子拍摄1,000