Android Gridview setOnitemClicklisterner在警告对话框中没有任何功能

时间:2017-02-28 09:02:39

标签: android gridview android-alertdialog

我在gridview中遇到问题,我在我的警报框中插入了gridview,但我的setOnitemClicklistener的功能在我的警告框中无效。如何在alertbox中为gridview实现setOnitemClicklistener。对此问题的任何建议

 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;
    }
}

2 个答案:

答案 0 :(得分:0)

使用对话代替 AlertDialog.Builder。

答案 1 :(得分:0)

在适配器类

中的modifiername上设置onclicklistener
    modifiername.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
             Toast.makeText(getActivity(), "test", Toast.LENGTH_SHORT).show();
        }
    });