Switch Fällen maximale Umsetzung?

Ich bin mit einer Einzel-switch-Fälle mehr als 100 Fälle-Anweisung verwendet werden. Gibt es irgendeine Grenze ?

Die Nutzung der Fälle für die Vorschläge meiner AutoCompleteTextView, android-tutorial.

Hier ein Teil meines codes, ignorieren die Badrul.class Sie wird später noch geändert werden.

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"};
}
  • Ich Frage mich, ob es eine bessere Lösung für dein problem... kannst du etwas code?
  • Nur stellen Sie sicher, dass es kein entweder-Ansatz, wie die Verwendung von OOP
  • Ich kenne keine technische Grenze beschränken würde Sie zu mehr als 100 Fällen (es sei denn, Sie haben Millionen von Ihnen, in welchem Fall einige andere Grenzen wie memory, code-Größe, etc. möglicherweise wirksam). Allerdings, wenn Sie haben, dass viele Fälle es sich lohnen könnte zu der Frage der Gestaltung und Aussehen für einige die bessere option. In diesem Fall möchten Sie vielleicht geben Sie einige weitere Informationen in der switch-Anweisung.
  • wie Thomas sagte, die änderung im design kann lösen ur problem
  • Vielleicht ein XY-Problem?
  • Meine aktualisierten codes.
  • Ich denke, dass Vererbung kann dir helfen... 🙂
  • wenn Sie dont Geist zu mir, ich bin neu in der Programmierung. :O

InformationsquelleAutor Kenneth Lhv | 2012-01-27
Schreibe einen Kommentar