2015-11-06 3 views
0

Привет, я столкнулся с проблемой с тех пор, и я не могу найти решение. У меня есть сетка с тремя элементами, и каждый из них открывает действие при выборе. Проблема возникает, когда я выбираю case 0, сначала он открывает intent i, затем intent ii, и заканчивается открытием intent iii.Функция переключателя, выполняющая несколько случаев

Если я выберу case 1, открываю сначала intent ii, а затем intent iii. И наконец, если я выберу case 2 Я открываю intent iii. Это главный код!

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mItems = new ArrayList<GridViewItem>(); 
     Resources resources = getResources(); 

     mItems.add(new GridViewItem(resources.getDrawable(R.drawable.truck_package), getString(R.string.drop_package))); 
     mItems.add(new GridViewItem(resources.getDrawable(R.drawable.man_package), getString(R.string.pick_package))); 
     mItems.add(new GridViewItem(resources.getDrawable(R.drawable.register), getString(R.string.register))); 
     mAdapter = new GridViewAdapter(this, mItems); 
     // initialize the GridView 
     final GridView gridView = (GridView) this.findViewById(R.id.gridView); 
     gridView.setAdapter(mAdapter); 
     gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       switch (position){ 
        case 0 : 
         Intent i = new Intent(getApplicationContext(), DropPackage.class); 
         Toast.makeText(getApplicationContext(), "DropPack", Toast.LENGTH_SHORT).show(); 
         startActivity(i); 

        case 1 : 
         Intent ii = new Intent(getApplicationContext(), PickPackage.class); 
         Toast.makeText(getApplicationContext(), "PickPack", Toast.LENGTH_SHORT).show(); 
         startActivity(ii); 
        case 2 : 
         Intent iii = new Intent(getApplicationContext(), Register.class); 
         Toast.makeText(getApplicationContext(), "Register", Toast.LENGTH_SHORT).show(); 
         startActivity(iii); 
       } 



      } 
     }); 
    } 

Любая идея о том, в чем проблема? Спасибо :)

+4

'Любая идея о том, что эта проблема может быть' Да, вы знаете проблему я думаю, но решение :: 'сломать;?' –

+0

ваш выключатель не. – Androider

+0

Oh @ ρяσѕρєяK вы правы !!! такой глупый вопрос! Спасибо :) – Alvaro

ответ

0

Вы не поставили break в конце утверждений кейса. Попробуйте добавить разрыв в конце каждого case.

Попробуйте этот путь

switch (position){ 
    case 0 : 
     Intent i = new Intent(getApplicationContext(), DropPackage.class); 
     Toast.makeText(getApplicationContext(), "DropPack", Toast.LENGTH_SHORT).show(); 
     startActivity(i); 
     break; 

    case 1 : 
     Intent ii = new Intent(getApplicationContext(), PickPackage.class); 
     Toast.makeText(getApplicationContext(), "PickPack", Toast.LENGTH_SHORT).show(); 
     startActivity(ii); 
     break; 

    case 2 : 
     Intent iii = new Intent(getApplicationContext(), Register.class); 
     Toast.makeText(getApplicationContext(), "Register", Toast.LENGTH_SHORT).show(); 
     startActivity(iii); 
     break; 
} 
Смежные вопросы