Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.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
Java Android-gridview中的卡片项目重复两次_Java_Android_Gridview - Fatal编程技术网

Java Android-gridview中的卡片项目重复两次

Java Android-gridview中的卡片项目重复两次,java,android,gridview,Java,Android,Gridview,ListAdapter.java public class ListAdapter extends ArrayAdapter<String> { private Activity context; private int[] icon; private String[] title; public ListAdapter(Activity context, int[] icon, String[] title) { super(context, R.la

ListAdapter.java

public class ListAdapter extends ArrayAdapter<String>
{
  private Activity context;
  private int[] icon;
  private String[] title;

  public ListAdapter(Activity context, int[] icon, String[] title)
  {
    super(context, R.layout.list_item, title);
    this.context = context;
    this.icon = icon;
    this.title = title;
  }

  public View getView(final int position, View view, final ViewGroup parent)
  { 
    LayoutInflater inflater = context.getLayoutInflater();
    View rowView = inflater.inflate(R.layout.list_item, null, true);
    try
    {
        TextView txtTitle = (TextView) rowView.findViewById(R.id.txtTitle);
        ImageView imgIcon = (ImageView) rowView.findViewById(R.id.imgIcon);
        txtTitle.setText(title[position]);
        imgIcon.setBackgroundResource(icon[position]);
    }
     catch (Exception e)
     { 
       e.printStackTrace();
     }
    finally
    {
       return rowView;
    }
}}
公共类ListAdapter扩展了ArrayAdapter
{
私人活动语境;
私有int[]图标;
私有字符串[]标题;
公共ListAdapter(活动上下文,int[]图标,字符串[]标题)
{
超级(上下文、右布局、列表项、标题);
this.context=上下文;
this.icon=图标;
this.title=标题;
}
公共视图getView(最终整型位置、视图视图、最终视图组父视图)
{ 
LayoutInflater充气器=上下文。getLayoutInflater();
视图行视图=充气机。充气(R.layout.list_项,null,true);
尝试
{
TextView txtTitle=(TextView)rowView.findViewById(R.id.txtTitle);
ImageView imgIcon=(ImageView)rowView.findViewById(R.id.imgIcon);
setText(头衔[职位]);
imgIcon.setBackgroundResource(图标[位置]);
}
捕获(例外e)
{ 
e、 printStackTrace();
}
最后
{
返回行视图;
}
}}
MainActivity.java
在该卡中,事件将替换为服务。当我重新洗牌位置时,更改会反映在应用程序中,但当我再次运行应用程序时,库将被服务所取代

public class MainActivity extends AppCompatActivity
{
   String[] title = {
        "Services" ,
        "Solutions",
        "Customers",
        "Events",
        "Gallery",
        "Contact Us"
    };

int[] icon = {
        R.drawable.services_icon,
        R.drawable.solution_icon,
        R.drawable.customer_icon,
        R.drawable.event_icon,
        R.drawable.gallery_icon,
        R.drawable.contact_us_icon
};

    HomeGrid adapter = new HomeGrid(MainActivity.this, title, icon, back);
    grid = (GridView) findViewById(R.id.grid);
    grid.setAdapter(adapter);
    grid.setOnItemClickListener(new AdapterView.OnItemClickListener() {

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

            switch (title[position]) {
                case "Services":
                    Intent i1 = new Intent(MainActivity.this, Listing.class);
                    startActivity(i1);
                    break;
                case "Solutions":
                    //Intent i2 = new Intent(MainActivity.this, Listing.class);
                    //startActivity(i2);
                    Toast.makeText(MainActivity.this, "You Clicked at " + title[position], Toast.LENGTH_SHORT).show();
                    break;
                case "Customers":
                    Toast.makeText(MainActivity.this, "You Clicked at " + title[position], Toast.LENGTH_SHORT).show();
                    break;
                case "Gallery":
                    Toast.makeText(MainActivity.this, "You Clicked at " + title[position], Toast.LENGTH_SHORT).show();
                    break;
                case "Events":
                    Intent i3 = new Intent(MainActivity.this, Form.class);
                    startActivity(i3);
                    break;
                case "Contact Us":
                    Toast.makeText(MainActivity.this, "You Clicked at " + title[position], Toast.LENGTH_SHORT).show();
                    break;   
         }
        }
    });
}
public类MainActivity扩展了AppCompatActivity
{
字符串[]标题={
“服务”,
“解决方案”,
“客户”,
“活动”,
“画廊”,
“联系我们”
};
int[]图标={
R.drawable.services_图标,
R.drawable.solution_图标,
R.drawable.customer_图标,
R.drawable.event_图标,
R.drawable.gallery_图标,
R.drawable.contact\u us\u图标
};
HomeGrid adapter=新的HomeGrid(MainActivity.this,title,icon,back);
grid=(GridView)findviewbyd(R.id.grid);
设置适配器(适配器);
grid.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
开关(标题[位置]){
案例“服务”:
Intent i1=新Intent(MainActivity.this,Listing.class);
星触觉(i1);
打破
案例“解决方案”:
//Intent i2=新Intent(MainActivity.this,Listing.class);
//星触觉(i2);
Toast.makeText(MainActivity.this,“您在“+title[position],Toast.LENGTH_SHORT.show]处单击了它”);
打破
案例“客户”:
Toast.makeText(MainActivity.this,“您在“+title[position],Toast.LENGTH_SHORT.show]处单击了它”);
打破
案例“画廊”:
Toast.makeText(MainActivity.this,“您在“+title[position],Toast.LENGTH_SHORT.show]处单击了它”);
打破
案例“事件”:
意向i3=新意向(MainActivity.this,Form.class);
星触觉(i3);
打破
案例“联系我们”:
Toast.makeText(MainActivity.this,“您在“+title[position],Toast.LENGTH_SHORT.show]处单击了它”);
打破
}
}
});
}
使用此选项

 public class ListAdapter extends ArrayAdapter<String>{
    private Activity context;
    private int[] icon;
    private String[] title;
    private LayoutInflater inflater;
    public ListAdapter(Activity context, int[] icon, String[] title)
    {
      super(context, R.layout.list_item, title);
      this.context = context;
      this.icon = icon;
      this.title = title;
      inflater = LayoutInflater.from(context);
 }
 public View getView(final int position, View view, final ViewGroup parent)
 { 
   view= inflater.inflate(R.layout.list_item, parent, false);
   try
   {
     TextView txtTitle = (TextView) view.findViewById(R.id.txtTitle);
     ImageView imgIcon = (ImageView) view.findViewById(R.id.imgIcon);
     txtTitle.setText(title[position]);
     imgIcon.setBackgroundResource(icon[position]);
  }
  catch (Exception e)
  { 
    e.printStackTrace();
  }
 finally
 {
    return view;
  }
 }
}
公共类ListAdapter扩展了ArrayAdapter{
私人活动语境;
私有int[]图标;
私有字符串[]标题;
私人充气机;
公共ListAdapter(活动上下文,int[]图标,字符串[]标题)
{
超级(上下文、右布局、列表项、标题);
this.context=上下文;
this.icon=图标;
this.title=标题;
充气器=充气器。从(上下文);
}
公共视图getView(最终整型位置、视图视图、最终视图组父视图)
{ 
视图=充气机。充气(R.layout.list_项,父项,false);
尝试
{
TextView txtTitle=(TextView)view.findViewById(R.id.txtTitle);
ImageView imgIcon=(ImageView)view.findViewById(R.id.imgIcon);
setText(头衔[职位]);
imgIcon.setBackgroundResource(图标[位置]);
}
捕获(例外e)
{ 
e、 printStackTrace();
}
最后
{
返回视图;
}
}
}

谢谢Vaibhavican你能解释一下你改变了什么,为什么你认为问题出在哪里,以及你认为你的解决方案是如何解决问题的吗?即使是我也不理解逻辑,但它解决了我的问题。解释将有助于将来解决此类问题。什么是
家庭电网
充气机。充气(…,正确)
->
充气器。充气(…,false)
您还不想将视图附加到父视图。电网负责这方面的工作。