我在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;
}
}
答案 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();
}
});