2015-11-06 66 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; 
}