Skip to content

Instantly share code, notes, and snippets.

@tosinonikute
Last active May 24, 2016 09:11
Show Gist options
  • Save tosinonikute/a6e56f2913c62b2f58337ff8a157e869 to your computer and use it in GitHub Desktop.
Save tosinonikute/a6e56f2913c62b2f58337ff8a157e869 to your computer and use it in GitHub Desktop.
working with spinners
package com.packtpub.ltm;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class priceList extends Activity implements AdapterView.OnItemSelectedListener{
Spinner capacity;
Spinner speed;
Spinner hoistSpeed;
Spinner type;
String speedValue;
String capacityValue;
ArrayAdapter adapterTypeA;
ArrayAdapter adapterTypeB;
String[] speedArr;
String[] capacityArr;
@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);
capacityArr = getResources().getStringArray(R.array.arrayCapacity);
capacity.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
//This automatically gets your selected value
capacityValue = capacityArr[position];
//Do your checks here, and set the next spinner, or reset the previous one.
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
hoistSpeed = (Spinner) findViewById(R.id.hoistSpeedTextView);
//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);
speedArr = getResources().getStringArray(R.array.arraySpeed);
speed.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
//This automatically gets your selected value
speedValue = speedArr[position];
adapterTypeA=ArrayAdapter.createFromResource(priceList.this,R.array.arrayHoistSpeedSingle, android.R.layout.simple_spinner_item);
adapterTypeB=ArrayAdapter.createFromResource(priceList.this,R.array.arrayHoistSpeedDouble, android.R.layout.simple_spinner_item);
//Do your checks here, and set the next spinner, or reset the previous one.
if(capacityValue.equals("250") && speedValue.equals("Single Speed")){
hoistSpeed.setAdapter(adapterTypeA);
} else if(speedValue.equals("Dual Speed")){
hoistSpeed.setAdapter(adapterTypeB);
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
@RDapps
Copy link

RDapps commented May 24, 2016

I see, that makes sense however I have the following errors.
Line 44 and 69 Error:
Variable accessed within inner class, needs to be declare final

I cant see there being a problem converting these to final unless you think other wise.
The following error seems more complex.
line 71 and 72 the keyword "this" is flagged as an error.
the message is pasted below:
image

@tosinonikute
Copy link
Author

Check my edit.
I think you should learn more on Java, there is no use helping you if you don't know Java itself !

@RDapps
Copy link

RDapps commented May 24, 2016

I agree, I am working through a book as we speak. Thank you for your help on this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment