Android应用 - 传递变量,设置微调器选项

时间:2015-12-13 01:24:11

标签: android spinner

简介:我是Android / Java的新手。我正在为应用程序开发上课,因为它满足了一个要求。从教授/ TA编码时我们没有收到任何指导,而且我完全陷入困境。

应用:我的应用非常简单。基本上第一部分是三个旋转器,您可以在其中选择车辆的年份,品牌和型号。这一年只是为了表演。选择Make选项后,应填充模型微调器。然后,您点击下一步进行新活动,我将为显示燃油经济性图表,汽车图像等的四辆车中的每一辆创建一个活动。

问题#1:就像我说的那样,我希望“模型”微调器能够从“Make”微调器中受欢迎。 Make spinner从我的XML数组填充,这是: 制作微调器条目:

           <string-array name="Make">
                <item >Select</item>
                <item id="Ford" >Ford</item>
                <item >Chevy</item>
            </string-array>

我正在使用代码来尝试填充Model微调器,但它无法正常工作。请参阅下面的代码和其他一些细节:

主Java类名:Main.java popuplate“Model”微调器的类:SpinnerPopulate.java

XML文件: main.xml,strings.xml,content_main.xml

以下是我在SpinnerPopulate.java中使用的Java

            package edu.name.projectapp;

            import java.util.ArrayList;
            import java.util.List;

            import android.app.Activity;
            import android.os.Bundle;
            import android.view.View;
            import android.widget.AdapterView;
            import android.widget.ArrayAdapter;
            import android.widget.Spinner;
            import android.widget.AdapterView.OnItemSelectedListener;
            import android.widget.Toast;
            /**
             * Created by All Users on 12/12/2015.
             */

            public class SpinnerPopulate extends Activity implements
                    OnItemSelectedListener{
                Spinner s1,s2;
                @Override
                protected void onCreate(Bundle savedInstanceState) {
                    // TODO Auto-generated method stub
                    super.onCreate(savedInstanceState);
                    setContentView(R.layout.main);
                    s1 = (Spinner)findViewById(R.id.spinnerMake);
                    s2 = (Spinner)findViewById(R.id.spinnerModel);
                    s1.setOnItemSelectedListener(this);
                }
                @Override
                public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
                                           long arg3) {
                    // TODO Auto-generated method stub
                    String sp1= String.valueOf(s1.getSelectedItem());
                    Toast.makeText(this, sp1, Toast.LENGTH_SHORT).show();
                    if(sp1.contentEquals("Ford")) {
                        List<String> list = new ArrayList<String>();
                        list.add("Focus");
                        list.add("Mustang");
                        list.add("Taurus");
                        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
                                android.R.layout.simple_spinner_item, list);
                        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                        dataAdapter.notifyDataSetChanged();
                        s2.setAdapter(dataAdapter);
                    }
                    if(sp1.contentEquals("Chevy")) {
                        List<String> list = new ArrayList<String>();
                        list.add("Corvette");
                        list.add("Lumina");
                        ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(this,
                                android.R.layout.simple_spinner_item, list);
                        dataAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                        dataAdapter2.notifyDataSetChanged();
                        s2.setAdapter(dataAdapter2);
                    }

                }
                @Override
                public void onNothingSelected(AdapterView<?> arg0) {
                    // TODO Auto-generated method stub

                }
            }

上面的代码不起作用,我无法弄清楚原因。我已经尝试将“扩展活动”切换为“扩展主要”,但它没有帮助。我的微调器ID是正确的。我只是不明白。

第二个问题: 一旦某人做出选择,他们会点击“下一步”。该按钮使用微调器选择将它们路由到新活动。因此,如果您选择福特作为模型,而选择模型的金牛座,您将进入FordTaurus活动。我不知道的是如何做到这一点。我还需要将他们的模型年份选择传递给此活动。因此,如果选择2011,我可以显示在新活动屏幕的顶部。我已经尝试过在这里和其他地方找到的一大堆不同的代码,但还没有让它工作。

应该非常感谢任何帮助,我很乐意提供更多代码,信息,截图,以及您可能需要协助的任何内容。

请参阅下面的主屏幕截图: enter image description here

0 个答案:

没有答案