如何使用GridView android进行多项选择?
这就是我使用adapter实现Gridview的方法,有人能告诉我如何修改这些代码以获得多选效果吗?以下是我的代码,敬请告知,并表示万分感谢如何使用GridView android进行多项选择?,android,gridview,multiple-choice,Android,Gridview,Multiple Choice,这就是我使用adapter实现Gridview的方法,有人能告诉我如何修改这些代码以获得多选效果吗?以下是我的代码,敬请告知,并表示万分感谢 //privateList<Condiment> CondimentList; CondimentList = getCondimentDescription(productcode); condimentGrid.setAdapter(new condimentlist()); public class condimentlist ex
//privateList<Condiment> CondimentList;
CondimentList = getCondimentDescription(productcode);
condimentGrid.setAdapter(new condimentlist());
public class condimentlist extends BaseAdapter {
LayoutInflater mInflater;
public condimentlist() {
mInflater = LayoutInflater.from(cart_list.this);
}
@Override
public int getCount() {
return CondimentList.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.condiment_item, null);
}
Condiment myObj = CondimentList.get(position);
Button CondimentItem = (Button) convertView.findViewById(R.id.condimentItem);
CondimentItem.setText("" +myObj.getCondimentDescription());
return convertView;
}
}
//私人调味品清单;
调味品列表=获取调味品描述(productcode);
setAdapter(新的调味品列表());
公共类调味品列表扩展BaseAdapter{
拉平机;
公共调味品清单(){
mInflater=LayoutInflater.from(cart\u list.this);
}
@凌驾
public int getCount(){
返回调味品列表。size();
}
@凌驾
公共对象getItem(int位置){
返回null;
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
if(convertView==null){
convertView=mInflater.充气(R.布局.调味品项目,空);
}
调味品myObj=调味品列表.get(位置);
按钮调味品项=(按钮)convertView.findViewById(R.id.consumentItem);
调味品项.setText(“+myObj.getconsumentdescription());
返回视图;
}
}
只需在代码中添加少量内容,即可在调味品类模型中提供选定值,并按如下方式使用
//privateList<Condiment> CondimentList;
CondimentList = getCondimentDescription(productcode);
condimentGrid.setAdapter(new condimentlist());
public class condimentlist extends BaseAdapter {
LayoutInflater mInflater;
public condimentlist() {
mInflater = LayoutInflater.from(cart_list.this);
}
@Override
public int getCount() {
return CondimentList.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.condiment_item, null);
}
final Condiment myObj = CondimentList.get(position);
Button CondimentItem = (Button) convertView.findViewById(R.id.condimentItem);
CondimentItem.setText("" +myObj.getCondimentDescription());
CondimentItem.setSelected(myObj.isSelected());
CondimentItem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myObj.setSelected(!myObj.isSelected());
v.setSelected(myObj.isSelected());
}
});
return convertView;
}
}
//私人调味品清单;
调味品列表=获取调味品描述(productcode);
setAdapter(新的调味品列表());
公共类调味品列表扩展BaseAdapter{
拉平机;
公共调味品清单(){
mInflater=LayoutInflater.from(cart\u list.this);
}
@凌驾
public int getCount(){
返回调味品列表。size();
}
@凌驾
公共对象getItem(int位置){
返回null;
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
if(convertView==null){
convertView=mInflater.充气(R.布局.调味品项目,空);
}
最终调味品myObj=调味品列表.get(位置);
按钮调味品项=(按钮)convertView.findViewById(R.id.consumentItem);
调味品项.setText(“+myObj.getconsumentdescription());
调味品项.setSelected(myObj.isSelected());
consumentItem.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
myObj.setSelected(!myObj.isSelected());
v、 setSelected(myObj.isSelected());
}
});
返回视图;
}
}
为什么不试试recycler view呢?看看这个,如果我使用recycler view,会有什么不同?你只需要调用gridlayout管理器而不是lineallayout管理器,它比listview和GridView有很多优点。如果你想将适配器项显示为选中项,那么只需侦听项的onClick事件和回调侦听器内部的onClick事件即可您可以将项目的状态更新为选中状态,在getView中,您可以检查项目是否已选中,然后在项目上显示某种选定类型的覆盖或任何您的设计要求。如果你想取得其他成就,请明确定义。