2015-11-06 68 views
0

嗨,我一直在面臨一個問題,我似乎無法找到解決方案。 我有一個gridview有三個項目,每一個選擇時打開一個活動。問題出在我選擇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

哦@ρяσѕρєя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; 
}