簡體   English   中英

Onclicklistener移動到android中的相同活動

[英]Onclicklistener moving to same activity in android

嗨,在我的應用程序中,我正在使用網格視圖布局顯示帶有文本的圖像。在這種情況下,我使用列表視圖和框架布局來設計xml。

在那我使用了6個關於我們,照相館等的項目。現在,我的問題是,如果我單擊“關於我們”,我想轉到關於我們的活動,如果我單擊照相館,它將移至flickr活動類。

但是如果我單擊任何活動,它就會移到同一活動。現在,我不想那樣,我想移至特定活動

MainActivity類

public class MainActivity extends Activity implements OnClickListener
{

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main1);
        final int pos = getIntent().getIntExtra("pos",0); 
        GridView gridView = (GridView)findViewById(R.id.gridview);
        gridView.setAdapter(new MyAdapter(this));
        gridView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> a, View v, int position,
                    long id) {
                //Grab the item position here and write further code
                 switch (pos) {
                 case 0:
                     Intent nextScreen = new Intent(getApplicationContext(), Aboutus.class);
                    startActivity(nextScreen);
                     break;
                 case 1:
                     Intent nextScreen1 = new Intent(getApplicationContext(), FlickrActivity.class);
                    startActivity(nextScreen1);
                     break;


            }
            }

        });
    }

    private class MyAdapter extends BaseAdapter
    {
        private List<Item> items = new ArrayList<Item>();
        private LayoutInflater inflater;

        public MyAdapter(Context context)
        {
            inflater = LayoutInflater.from(context);

            items.add(new Item("About Us", R.drawable.aboutus));
            items.add(new Item("Photo Gallery", R.drawable.photo));
            items.add(new Item("Veg Food", R.drawable.veg));
            items.add(new Item("Non Veg Food", R.drawable.nonveg));
            items.add(new Item("Location", R.drawable.contactus));
            items.add(new Item("Contact Us", R.drawable.contactus));

        }

        @Override
        public int getCount() {
            return items.size();
        }

        @Override
        public Object getItem(int i)
        {
            return items.get(i);
        }

        @Override
        public long getItemId(int i)
        {
            return items.get(i).drawableId;
        }

        @Override
        public View getView(int i, View view, ViewGroup viewGroup)
        {
            View v = view;
            ImageView picture;
            TextView name;

            if(v == null)
            {
               v = inflater.inflate(R.layout.gridview_item, viewGroup, false);
               v.setTag(R.id.picture, v.findViewById(R.id.picture));
               v.setTag(R.id.text, v.findViewById(R.id.text));
            }

            picture = (ImageView)v.getTag(R.id.picture);
            name = (TextView)v.getTag(R.id.text);

            Item item = (Item)getItem(i);

            picture.setImageResource(item.drawableId);
            name.setText(item.name);

            return v;
        }

        private class Item
        {
            final String name;
            final int drawableId;

            Item(String name, int drawableId)
            {
                this.name = name;
                this.drawableId = drawableId;
            }
        }
    }

    @Override
    public void onClick(DialogInterface dialog, int which) {
        // TODO Auto-generated method stub

    }

}
 gridView.setOnItemClickListener(new OnItemClickListener() {
     @Override
     public void onItemClick(AdapterView<?> a, View v, int position,
                long id) {
         //Grab the item position here and write further code
         switch (pos) {
             case 0:
                 Intent nextScreen = new Intent(getApplicationContext(), Aboutus.class);
                startActivity(nextScreen);
                 break;
             case 1:
                 Intent nextScreen1 = new Intent(getApplicationContext(), FlickrActivity.class);
                startActivity(nextScreen1);
                 break;


        }
    }

});

在此代碼中,您打開的pos是常量final int pos = getIntent().getIntExtra("pos",0); 傳遞的pos或零。 但是,您應該打開position參數。 見下文!

gridView.setOnItemClickListener(new OnItemClickListener() {
     @Override
     public void onItemClick(AdapterView<?> a, View v, int position,
                long id) {
         //Grab the item position here and write further code
         switch (position) {
             case 0:
                 Intent nextScreen = new Intent(getApplicationContext(), Aboutus.class);
                startActivity(nextScreen);
                 break;
             case 1:
                 Intent nextScreen1 = new Intent(getApplicationContext(), FlickrActivity.class);
                startActivity(nextScreen1);
                 break;


        }
    }

});

這樣就可以了!°

使用itemclicklistener方法中的位置

 gridView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> a, View v, int position,
                long id) {
             switch (position) {
             case 0:
                 Intent nextScreen = new Intent(getApplicationContext(), Aboutus.class);
                 startActivity(nextScreen);
                 break;
             case 1:
                 Intent nextScreen1 = new Intent(getApplicationContext(), FlickrActivity.class);
                 startActivity(nextScreen1);
                 break;


        }
        }

    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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