2017-02-28 1 views
0

J'ai un problème dans ma grille, j'insère ma grille dans ma boîte d'alerte, mais la fonction de mon setOnitemClicklistener ne fonctionne pas dans ma boîte d'alerte. Comment implémenter setOnitemClicklistener dans alertbox pour le gridview. Toute suggestion de ce problèmeAndroid Gridview setOnitemClicklisterner pas de fonction dans la boîte de dialogue d'alerte

LayoutInflater li = LayoutInflater.from(getActivity()); 
      View promptsView = li.inflate(R.layout.prompt_quantity, null); 
      final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity()); 
      // set prompts.xml to alertdialog builder 
      alertDialogBuilder.setView(promptsView); 
      final GridView modifiergridview = (GridView) promptsView.findViewById(R.id.modifiergridview); 
      modifierList = db.getModifierName(pName); 
      modifiergridview.setAdapter(new Modifierlist()); 

      modifiergridview.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
       public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
         Toast.makeText(getActivity(), "test", Toast.LENGTH_SHORT).show(); 
       } 
       }); 


       alertDialog.show(); 
       alertDialog.getWindow().setLayout(2000, 2000); 



     } 
}); 

Modifierlist.java

public class Modifierlist extends BaseAdapter { 

    LayoutInflater mInflater; 

    private ArrayList<Integer> positions = new ArrayList<Integer>(); 

    public ArrayList<Integer> getPositions() { 
     return positions; 
    } 

    public Modifierlist() { 
     mInflater = LayoutInflater.from(getActivity()); 
    } 

    @Override 
    public int getCount() { 
     return modifierList.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     return null; 
    } 

    @Override 
    public long getItemId(int position) { 
     return position; 
    } 

    @Override 
    public View getView(final int position, View convertView, ViewGroup parent) { 

     if (convertView == null) { 
      convertView = mInflater.inflate(R.layout.modifierlistview, null); 
     } 
     modifiername = (Button) convertView.findViewById(R.id.modifierbutton); 

     Modifier myObj = modifierList.get(position); 
     modifiername.setText("" + myObj.getModifierName()); 


     return convertView; 
    } 
} 
+0

S'il vous plaît coller le code de classe Modifierlist()? –

Répondre

0

mis onclicklistener sur modifiername en classe adaptateur

modifiername.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Toast.makeText(getActivity(), "test", Toast.LENGTH_SHORT).show(); 
     } 
    }); 
+0

merci, cela fonctionne –

+0

mais fondamentalement j'utilise setOnitemClicklistener pour ma gridview cela fonctionne bien –

+0

pourquoi il y a le problème gridview dans alertbox? –

0

Utilisez Dialog au lieu de AlertDialog.Builder.

+0

merci, j'utilise AlertDialog.Builder parce que je veux inviter avec ma mise en page de conception xml –

+0

vous pouvez également utiliser votre design xml dans Dialog juste ajouter ** dialog.setView (R.layout.dialog_layout); ** –