- Switch cases maximum implementation?
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.AdapterView;
- import android.widget.AdapterView.OnItemClickListener;
- import android.widget.ArrayAdapter;
- import android.widget.AutoCompleteTextView;
- import android.widget.Toast;
- public class Search extends Activity
- {
- public void onCreate(Bundle savedInstanceSate)
- {
- final AutoCompleteTextView autoComplete;
- super.onCreate(savedInstanceSate);
- setContentView(R.layout.searchshop);
- autoComplete = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);
- ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, shops);
- autoComplete.setAdapter(adapter);
- autoComplete.setThreshold(1);
- autoComplete.setOnItemClickListener(new OnItemClickListener()
- {
- @Override
- public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3)
- {
- int index=999;
- for(int i=0;i<shops.length;i++)
- {
- if(autoComplete.getText().toString().trim().equals(shops[i]))
- {
- index=i;
- break;
- }
- }
- switch(index)
- {
- case 0:
- startActivity(new Intent(Search.this, Adidas.class));
- break;
- case 1:
- startActivity(new Intent(Search.this, Affin.class));
- break;
- case 2:
- startActivity(new Intent(Search.this, AlamArt.class));
- break;
- case 3:
- startActivity(new Intent(Search.this, AlAmin.class));
- break;
- case 4:
- startActivity(new Intent(Search.this, Anakku.class));
- break;
- case 5:
- startActivity(new Intent(Search.this, Anggerik.class));
- break;
- case 6:
- startActivity(new Intent(Search.this, Asiari.class));
- break;
- case 7:
- startActivity(new Intent(Search.this, AsterSpring.class));
- break;
- case 8:
- startActivity(new Intent(Search.this, Audrey.class));
- break;
- case 9:
- startActivity(new Intent(Search.this, Badrul.class));
- break;
- case 10:
- startActivity(new Intent(Search.this, Badrul.class));
- break;
- case 11:
- startActivity(new Intent(Search.this, Badrul.class));
- break;
- default:
- Toast.makeText(Search.this, "Invalid Selection", Toast.LENGTH_SHORT).show();
- }
- }
- });
- }
- static final String[] shops = new String[]
- {
- "Adidas", "Affin Bank ATM", "Alam Art Gallery", "Al Amin Kids", "Anakku", "Anggerik", "Asiari",
- "Aster Spring", "Audrey", "Badrul Songket", "Bata"};
- }
- public class MyClass
- {
- private static final Map<Integer, Class> LOOKUP =
- new HashMap<Integer, Class>(...);
- static
- {
- LOOKUP.put(0, Adidas.class);
- LOOKUP.put(1, Affin.class);
- ...
- }
- public void onItemClick(...)
- {
- ...
- // Replace switch statement with:
- if (LOOKUP.containsKey(index))
- {
- startActivity(new Intent(Search.this, LOOKUP.get(index)));
- }
- else
- {
- Toast.makeText(Search.this,
- "Invalid Selection",
- Toast.LENGTH_SHORT).show();
- }
- }
- ...
- }
- switch (calculation type)
- {
- case: Fibonacci { ... }
- case: Pithagoras { ... }
- ...
- case 104 : { ... }
- }
- CalculationStrategy strategy = strategyFactor.getStrategy(calculation type);
- strategy.doCalculation;
- Class[] myArray = new Class[...];
- myArray[0] = Adidas.class;
- //...
- //instead of the switch
- startActivity(new Intent(Search.this, myArray[index]));
- switch(FIRSTCHAR){
- case A: switch(index){
- case 0: ..... break;
- etc
- }
- break;
- case B://do the same
- }
- public interface Shop
- {
- void startActivity(Intent i);
- }
- public class Adidas implements Shop
- {
- public Adidas(){
- // ...
- }
- public void startActivity(Intent i)
- {
- // specific implementation
- }
- }
- Shop[] shops = new Shop[]{ new Adidas(), new Affin(), ... };
- for (Shop shop : shops)
- {
- shop.startActivity(new Intent(Search.this));
- }