简介:我是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