私の友人(Java/Androidアプリの学習中)の顧客向けに、特定の製品の価格を選択する一連のスピナーを使用できるアプリを作成しています。他のスピナーが変更されたときにスピナーを選択する
私はスピナーで現時点でちょっと立ち往生していますが、最終的にはどういったものがまとまっているのか、私は以前のスピナーの選択に基づいてスピナーのオプションを設定するコードを作成しました。
これは、別のスピナーで選択されるまで機能します。例えば。 スピナー1で "single speed"を選択した場合、 スピナー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