简体   繁体   English

如何通过项目单击而不是吐司打开活动?

[英]how to open activity by item click instead of toast?

How do I open a new activity for each item clicked instead of just displaying the message in as a Toast message? 如何为单击的每个项目打开一个新活动,而不只是将消息显示为Toast消息?

When I click the item, it should open a new activity or a fragment in a new activity. 当我单击该项目时,它应打开一个新活动或一个新活动中的一个片段。 Here is my code: 这是我的代码:

public List<Product> getProductList() {

    productList = new ArrayList<>();
    productList.add(new Product(R.drawable.icon_android, "Title 1", "This is description 1"));
    productList.add(new Product(R.drawable.icon_android, "Title 2", "This is description 2"));
    productList.add(new Product(R.drawable.icon_android, "Title 3", "This is description 3"));
    productList.add(new Product(R.drawable.icon_android, "Title 4", "This is description 4"));
    productList.add(new Product(R.drawable.icon_android, "Title 5", "This is description 5"));
    productList.add(new Product(R.drawable.icon_android, "Title 6", "This is description 6"));
    productList.add(new Product(R.drawable.icon_android, "Title 7", "This is description 7"));
    productList.add(new Product(R.drawable.icon_android, "Title 8", "This is description 8"));
    productList.add(new Product(R.drawable.icon_android, "Title 9", "This is description 9"));
    productList.add(new Product(R.drawable.icon_android, "Title 10", "This is description 10"));
    return productList;
}

    AdapterView.OnItemClickListener onItemClick = new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            //Do any thing when user click to item

            Toast.makeText(getApplicationContext(), productList.get(position).getTitle() + " - " + productList.get(position).getDescription(), Toast.LENGTH_SHORT).show();
        }
    };

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return super.onCreateOptionsMenu(menu);
    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()) {
            case R.id.item_menu_1:
                if(VIEW_MODE_LISTVIEW == currentViewMode) {
                    currentViewMode = VIEW_MODE_GRIDVIEW;
                } else {
                    currentViewMode = VIEW_MODE_LISTVIEW;
                }
                //Switch view
                switchView();
                //Save view mode in share reference
                SharedPreferences sharedPreferences = getSharedPreferences("ViewMode", MODE_PRIVATE);
                SharedPreferences.Editor editor = sharedPreferences.edit();
                editor.putInt("currentViewMode", currentViewMode);
                editor.commit();

                break;
        }
        return true;
    }
}

You can use intent to open new activity. 您可以使用Intent打开新活动。

     @Override 
    public void onItemClick(View view, int position) {
        switch(position){
        case 0:
            startActivity(new Intent(MainActivity.this, A.class));
            break;
        case 1:
            startActivity(new Intent(MainActivity.this, B.class));
            break;
        default:
            break;  
        }
    }

Something like that. 这样的事情。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM