Ich verwende eine Rasteransicht mit Basisadapter. Wann immer die Aktivität geöffnet wird, sollte die Gridview mit der Standardansicht in der Mitte angezeigt werden und wenn Benutzer Elemente hinzufügen, sollte sie anhängen, d. h. sie sollte neben der Standardansicht erscheinen.Android GridView: mit Standardansicht in der Mitte
Hier, wenn Sie auf die Standardansicht klicken, startet es verschiedene Aktivitäten und klicken Sie auf andere Elemente öffnet verschiedene Aktivitäten.
Unten ist mein BaseAdapter
public class CustomBaseAdapter extends BaseAdapter {
Context context;
List<RowItem> rowItems;
public CustomBaseAdapter(Context context, List<RowItem> items) {
this.context = context;
this.rowItems = items;
}
/*private view holder class*/
private class ViewHolder {
ImageView imageView;
TextView txtTitle;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
LayoutInflater mInflater = (LayoutInflater)
context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.addcompany_layout, null);
holder = new ViewHolder();
holder.txtTitle = (TextView) convertView.findViewById(R.id.location);
holder.imageView = (ImageView) convertView.findViewById(R.id.addbutton);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
RowItem rowItem = (RowItem) getItem(position);
holder.txtTitle.setText(rowItem.getTitle());
holder.imageView.setImageBitmap(BitmapFactory
.decodeFile(rowItem.getImagepath()));
return convertView;
}
@Override
public int getCount() {
return rowItems.size();
}
@Override
public Object getItem(int position) {
return rowItems.get(position);
}
@Override
public long getItemId(int position) {
return rowItems.indexOf(getItem(position));
}
}
Unten ist mein Aktivität
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.addcompanytogrid_layout);
// Bitmap homeIcon = BitmapFactory.decodeResource(this.getResources(), R.drawable.add);
//String imageUri = "drawable://" + R.drawable.add;
Uri otherPath =Uri.parse("android.resource://tabquote.mycompany.com.myquate/" + R.drawable.add);
String imageUri = otherPath .toString();
rowItemstodisplay = new ArrayList<RowItem>();
allitems = new ArrayList<RowItem>();
// RowItem item = RowItem.getInstance();
RowItem item = new RowItem();
String im = item.getImagepath();
String ti = item.getTitle();
rowItemstodisplay.add(new RowItem(im,ti));
RowItem item1 = new RowItem();
item1.setImagepath(im);
item1.setTitle("Add Company");
rowItemstodisplay.add(item1);
for (int i=0; i<rowItemstodisplay.size(); i++) {
allitems.add(rowItemstodisplay.get(i));
}
listView = (GridView) findViewById(R.id.gv);
CustomBaseAdapter adapter = new CustomBaseAdapter(this, rowItemstodisplay);
listView.setAdapter(adapter);
listView.setOnItemClickListener(this);
}
Was ist dein Problem? – Spartan
Die Standardansicht kann nicht abgerufen werden. Items fügen hinzu, sind aber nicht sicher, wie man defaultview implementiert – hari86
hinzufügen Aktivitätscode –