我使用运行时结构创建了不同的按钮,其中包含图片,名称和价格。 问题我必须将结构调整为GridView,之前是线性布局,并且setOnClickListener已停止工作。
下面的代码,您可以看到setOnclick进入循环。
package info.androidhive.slidingmenu;
public class Menu extends Fragment {
//Creem una array de les imatges de productes
int[] PrimersIcons = { R.drawable.ensalada_frutas300x200, R.drawable.ensalada_queso300x200,
R.drawable.entrante_mejicano300x200, R.drawable.sopa_arroz300x200};
//Creem una array amb el nom de cada un dels productes
String[] PrimersNoms = {"Amanida de fruites", "Amanida de formatge", "Entrant mexicà", "Sopa d'arròs"};
//Creem una array amb el preu dels productes
String[] PrimersPreus = {"7 €", "8 €", "9 €", "3 €"};
int[] SegonsIcons = { R.drawable.ensalada_frutas300x200, R.drawable.ensalada_queso300x200,
R.drawable.entrante_mejicano300x200, R.drawable.sopa_arroz300x200};
//Creem una array amb el nom de cada un dels productes
String[] SegonsNoms = {"Amanida de fruites", "Amanida de formatge", "Entrant mexicà", "Sopa d'arròs"};
//Creem una array amb el preu dels productes
String[] SegonsPreus = {"7 €", "8 €", "9 €", "3 €"};
int[] PostresIcons = { R.drawable.ensalada_frutas300x200, R.drawable.ensalada_queso300x200,
R.drawable.entrante_mejicano300x200, R.drawable.sopa_arroz300x200};
//Creem una array amb el nom de cada un dels productes
String[] PostresNoms = {"Amanida de fruites", "Amanida de formatge", "Entrant mexicà", "Sopa d'arròs"};
//Creem una array amb el preu dels productes
String[] PostresPreus = {"7 €", "8 €", "9 €", "3 €"};
//Creem una arrayList del tipus miBoton, aquesta guardara la imatge del producte amb nom i preu
ArrayList<MiBoton> ProductesBotons = new ArrayList<MiBoton>();
//Creem un adaptador a partir de la classe CustomGridViewAdpater
private CustomGridViewAdapter adapter;
public Menu(){}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
int i;
View rootView = inflater.inflate(R.layout.menu_dia, container, false);
//Creem un GridView que anomenarem gridProductes i li passarem la id del grid
GridView gridPrimers = (GridView)rootView.findViewById(R.id.GridPrimers);
//Fem un bucle que agafi tots els elements de la array
for (i = 0; i < PrimersNoms.length; i++){
//Ens crea un element del tipus miboton i el guarda a ProductesBotons que es la array de miboton
ProductesBotons.add(new MiBoton(getActivity(), PrimersIcons[i], PrimersNoms[i], PrimersPreus[i]));
ProductesBotons.get(i).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
detall d = new detall();
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.frame_container, d);
ft.commit();
}
});
}
//Al adapter li creem un new customgridviewadapter, li passem el layout al que pertany i la array
adapter = new CustomGridViewAdapter(getActivity(), R.layout.menu_dia, ProductesBotons);
gridPrimers.setAdapter(adapter);
ProductesBotons.clear();
GridView gridSegons = (GridView)rootView.findViewById(R.id.GridSegons);
//Fem un bucle que agafi tots els elements de la array
for (i = 0; i < SegonsNoms.length; i++){
//Ens crea un element del tipus miboton i el guarda a ProductesBotons que es la array de miboton
ProductesBotons.add(new MiBoton(getActivity(), SegonsIcons[i], SegonsNoms[i], SegonsPreus[i]));
ProductesBotons.get(i).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
detall d = new detall();
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.frame_container, d);
ft.commit();
}
});
}
//Al adapter li creem un new customgridviewadapter, li passem el layout al que pertany i la array
adapter = new CustomGridViewAdapter(getActivity(), R.layout.menu_dia, ProductesBotons);
gridSegons.setAdapter(adapter);
ProductesBotons.clear();
GridView gridPostres = (GridView)rootView.findViewById(R.id.GridPostres);
//Fem un bucle que agafi tots els elements de la array
for (i = 0; i < PostresNoms.length; i++){
//Ens crea un element del tipus miboton i el guarda a ProductesBotons que es la array de miboton
ProductesBotons.add(new MiBoton(getActivity(), PostresIcons[i], PostresNoms[i], PostresPreus[i]));
ProductesBotons.get(i).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
detall d = new detall();
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.frame_container, d);
ft.commit();
}
});
}
//Al adapter li creem un new customgridviewadapter, li passem el layout al que pertany i la array
adapter = new CustomGridViewAdapter(getActivity(), R.layout.menu_dia, ProductesBotons);
gridPostres.setAdapter(adapter);
return rootView;
}
}
/*
//Bitmap bmpImage = BitmapFactory.decodeResource(this.getResources(),R.drawable.carrito);
//PanelProduct pnlProduct = new PanelProduct(this.getActivity(), bmpImage, "Carne", "13,00€");
View rootView = inflater.inflate((R.layout.products), container);
return rootView;
*/