Bonjour,
Je voudrais avoir une aide sur mon programme, en faite j'ai créer un objet produit " id , image , titre , description" et je dois faire un affichage GridView. j'ai trouvé comment le faire simplement mais mon probleme qe je doit utiliser une table produit donc j'ai créer avec sqlite puis a partir de la table je recupere l'image et le titre donc dans le cas ou j'ajout un nouveau produit dans la base donc l'image sera afficher dans la liste çàd dans GridView
voila les codes et comment je peux le modifier de tel sorte soit dynamiquement avec base de données.
ListViewadapter
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 public class Product { private int imageId; private String title; private String description; public Product(int imageId, String title, String description) { this.imageId = imageId; this.title = title; this.description = description; } public int getImageId() { return imageId; } public void setImageId(int imageId) { this.imageId = imageId; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 public class ListViewAdapter extends ArrayAdapter<Product> { public ListViewAdapter(Context context, int resource, List<Product> objects) { super(context, resource, objects); } @NonNull @Override public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; if(null == v) { LayoutInflater inflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = inflater.inflate(R.layout.list_item, null); } Product product = getItem(position); ImageView img = (ImageView) v.findViewById(R.id.imageView); TextView txtTitle = (TextView) v.findViewById(R.id.txtTitle); TextView txtDescription = (TextView) v.findViewById(R.id.txtDescription); img.setImageResource(product.getImageId()); txtTitle.setText(product.getTitle()); txtDescription.setText(product.getDescription()); return v; } }
Main:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 public class GridViewAdapter extends ArrayAdapter<Product> { public GridViewAdapter(Context context, int resource, List<Product> objects) { super(context, resource, objects); } @NonNull @Override public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; if(null == v) { LayoutInflater inflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = inflater.inflate(R.layout.grid_item, null); } Product product = getItem(position); ImageView img = (ImageView) v.findViewById(R.id.imageView); TextView txtTitle = (TextView) v.findViewById(R.id.txtTitle); TextView txtDescription = (TextView) v.findViewById(R.id.txtDescription); img.setImageResource(product.getImageId()); txtTitle.setText(product.getTitle()); txtDescription.setText(product.getDescription()); return v; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92 public class MainActivity extends AppCompatActivity { private ViewStub stubGrid; private GridView gridView; private GridViewAdapter gridViewAdapter; private List<Product> productList; private int currentViewMode = 0; static final int VIEW_MODE_GRIDVIEW = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); stubGrid = (ViewStub) findViewById(R.id.stub_grid); stubGrid.inflate(); gridView = (GridView) findViewById(R.id.mygridview); //get list of product getProductList(); //Get current view mode in share reference SharedPreferences sharedPreferences = getSharedPreferences("ViewMode", MODE_PRIVATE); currentViewMode = sharedPreferences.getInt("currentViewMode", VIEW_MODE_LISTVIEW);//Default is view listview //Register item lick gridView.setOnItemClickListener(onItemClick); } private void setAdapters() { gridViewAdapter = new GridViewAdapter(this, R.layout.grid_item, productList); gridView.setAdapter(gridViewAdapter); } public List<Product> getProductList() { //pseudo code to get product, replace your code to get real product here productList = new ArrayList<>(); productList.add(new Product(R.drawable.icon_android, "Title 1", "This is description 1")); productList.add(new Product(R.drawable.icon_android, "Title 2", "This is description 2")); productList.add(new Product(R.drawable.icon_android, "Title 3", "This is description 3")); productList.add(new Product(R.drawable.icon_android, "Title 4", "This is description 4")); productList.add(new Product(R.drawable.icon_android, "Title 5", "This is description 5")); productList.add(new Product(R.drawable.icon_android, "Title 6", "This is description 6")); productList.add(new Product(R.drawable.icon_android, "Title 7", "This is description 7")); productList.add(new Product(R.drawable.icon_android, "Title 8", "This is description 8")); productList.add(new Product(R.drawable.icon_android, "Title 9", "This is description 9")); productList.add(new Product(R.drawable.icon_android, "Title 10", "This is description 10")); return productList; } AdapterView.OnItemClickListener onItemClick = new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //Do any thing when user click to item Toast.makeText(getApplicationContext(), productList.get(position).getTitle() + " - " + productList.get(position).getDescription(), Toast.LENGTH_SHORT).show(); } }; @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.item_menu_1: VIEW_MODE_LISTVIEW == currentViewMode) { currentViewMode = VIEW_MODE_GRIDVIEW; } break; } return true; } }
Partager