[英]switch function executing several cases
嗨,我已經遇到了一段時間了,我似乎找不到解決方法。 我有一個包含三個項目的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);
}
}
});
}
知道可能是什么問題嗎? 謝謝 :)
您沒有在case語句的末尾放置break
。 嘗試在每個case
語句的末尾添加break。
試試這個
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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.