我正在为我的一个朋友(学习Java/Android应用程序)创建一个应用程序,他的客户将能够使用一系列微调器来选择特定产品的价格。当其他微调器发生变化时保持微调器选择
我被困在了一点,此刻我与spinners,我终于得到他们如何都挂在一起,我已经设法创建一些代码,将基于选择前一个微调设置一个微调选项。
这可以工作,直到在不同的微调器上进行选择。例如。 在微调器1上选择“单速”, 在微调器2上选择“4”, 在微调器3上选择“钩子”, 微调器2复位。
一旦选择了另一个微调框,我该如何阻止我的动态微调器重置?
最终,我将建立所有的纺纱机动态,因为不同的选择将决定应该提供哪些选项。
在此先感谢。 (欣赏它不是精彩的写作,希望随着时间的推移将会有所改进)。
public class priceList extends Activity implements AdapterView.OnItemSelectedListener{
Spinner capacity;
Spinner speed;
Spinner hoistSpeed;
Spinner type;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_price_list);
//Spinner for Capacity
capacity = (Spinner) findViewById(R.id.capacityTextView);
ArrayAdapter adapterCapa=ArrayAdapter.createFromResource(this,R.array.arrayCapacity, android.R.layout.simple_spinner_item);
capacity.setAdapter(adapterCapa);
capacity.setOnItemSelectedListener(this);
//Spinner for the Speed
speed = (Spinner) findViewById(R.id.speedTextView);
ArrayAdapter adapterSpd = ArrayAdapter.createFromResource(this,R.array.arraySpeed, android.R.layout.simple_spinner_item);
speed.setAdapter(adapterSpd);
speed.setOnItemSelectedListener(this);
//Spinner for the type
type = (Spinner) findViewById(R.id.typeTextView);
ArrayAdapter adapterBeam=ArrayAdapter.createFromResource(this,R.array.arrayType, android.R.layout.simple_spinner_item);
type.setAdapter(adapterBeam);
type.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int pos, long id) {
//TextView myText = (TextView) view;
//Toast.makeText(this, myText.getText(), Toast.LENGTH_SHORT).show();
hoistSpeed = (Spinner) findViewById(R.id.hoistSpeedTextView);
ArrayAdapter adapterTypeA=ArrayAdapter.createFromResource(this,R.array.arrayHoistSpeedSingle, android.R.layout.simple_spinner_item);
hoistSpeed = (Spinner) findViewById(R.id.hoistSpeedTextView);
ArrayAdapter adapterTypeB=ArrayAdapter.createFromResource(this,R.array.arrayHoistSpeedDouble, android.R.layout.simple_spinner_item);
if(speed.getSelectedItem().toString().equals("Single Speed"))
{
hoistSpeed.setAdapter(adapterTypeA);
}
else if(speed.getSelectedItem().toString().equals("Dual Speed"))
{
hoistSpeed.setAdapter(adapterTypeB);
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}
https://github.com/henrychuangtw/ReuseSpinner – HenryChuang