Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Onclicklistener移动到android中的相同活动_Android_Onclicklistener - Fatal编程技术网

Onclicklistener移动到android中的相同活动

Onclicklistener移动到android中的相同活动,android,onclicklistener,Android,Onclicklistener,您好,在我的应用程序中,我使用网格视图布局显示带有文本的图像。在本文中,我使用列表视图和框架布局来设计xml 在这方面,我使用了6个项目命名为关于我们,照片库等 现在我的问题是,如果我单击“关于我们”我想转到“关于我们”活动,如果我单击照片库,它将转到flickr活动类 但是如果我点击任何活动,它就会移动到同一个活动。现在我不想这样,我想移动到特定的活动 main活动类 public class MainActivity extends Activity implements OnClickLi

您好,在我的应用程序中,我使用网格视图布局显示带有文本的图像。在本文中,我使用列表视图和框架布局来设计xml

在这方面,我使用了6个项目命名为关于我们,照片库等 现在我的问题是,如果我单击“关于我们”我想转到“关于我们”活动,如果我单击照片库,它将转到flickr活动类

但是如果我点击任何活动,它就会移动到同一个活动。现在我不想这样,我想移动到特定的活动

main活动类

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

    }

}
public类MainActivity扩展活动实现OnClickListener
{
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main1);
final int pos=getIntent().getIntExtra(“pos”,0);
GridView GridView=(GridView)findViewById(R.id.GridView);
setAdapter(新的MyAdapter(this));
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共视图单击(适配器视图a、视图v、内部位置、,
长id){
//在这里抓住项目位置并编写进一步的代码
开关(pos){
案例0:
Intent nextScreen=newintent(getApplicationContext(),Aboutus.class);
startActivity(nextScreen);
打破
案例1:
Intent nextScreen1=新的Intent(getApplicationContext(),flickActivity.class);
startActivity(下一屏幕1);
打破
}
}
});
}
私有类MyAdapter扩展了BaseAdapter
{
私有列表项=新的ArrayList();
私人充气机;
公共MyAdapter(上下文)
{
充气器=充气器。从(上下文);
添加(新项目(“关于我们”,R.drawable.aboutus));
添加(新项目(“照片库”,R.drawable.Photo));
添加(新项目(“蔬菜食品”,R.drawable.Veg));
添加(新项目(“非蔬菜食品”,R.drawable.nonveg));
添加(新项目(“位置”,R.drawable.contactus));
添加(新项目(“联系我们”,R.drawable.contactus));
}
@凌驾
public int getCount(){
返回items.size();
}
@凌驾
公共对象getItem(int i)
{
返回项目。获取(i);
}
@凌驾
公共长getItemId(int i)
{
退货项目.get(i).drawableId;
}
@凌驾
公共视图getView(int i、视图视图、视图组视图组)
{
视图v=视图;
图像视图图片;
文本视图名称;
如果(v==null)
{
v=充气机。充气(R.layout.gridview_项,视图组,false);
v、 setTag(R.id.picture,v.findViewById(R.id.picture));
v、 setTag(R.id.text,v.findviewbyd(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);
返回v;
}
私人类项目
{
最后的字符串名;
最终int可提取ID;
项(字符串名称,int-drawableId)
{
this.name=名称;
this.drawableId=drawableId;
}
}
}
@凌驾
public void onClick(DialogInterface dialog,int which){
//TODO自动生成的方法存根
}
}

这样就行了!°

使用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;


        }
        }

    });
gridView.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共视图单击(适配器视图a、视图v、内部位置、,
长id){
开关(位置){
案例0:
Intent nextScreen=newintent(getApplicationContext(),Aboutus.class);
startActivity(nextScreen);
打破
案例1:
Intent nextScreen1=新的Intent(getApplicationContext(),flickActivity.class);
startActivity(下一屏幕1);
打破
}
}
});

显示您的AboutUs活动和FlickActivity。您确定您在那里使用了正确的不同xml吗?请尝试将此行:switch(pos)替换为switch(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;


        }
    }

});
 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;


        }
        }

    });