Java Android-gridview中的卡片项目重复两次
ListAdapter.javaJava 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
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)
您还不想将视图附加到父视图。电网负责这方面的工作。