簡體   English   中英

開關功能執行幾種情況

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM