当前位置:首页 » 安卓系统 » androidgridview设置选中

androidgridview设置选中

发布时间: 2023-01-25 14:22:29

㈠ 如何让android的GridView中显示的元素只选择一行中的某一个而改变资源文件。

GridView有一个setOnItemClickLintener()方法,可以获取当前点击的item,把这个item的位置传给adapter,在adapter的getView()中,修改这个item的背景什么的

㈡ 如何模拟android 中GridView的选中item的事件

java">gridView.setOnItemClickListener(newAdapterView.OnItemClickListener(){
@Override
publicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){
//dosomething
}
});

㈢ Android 如何使GridView里的值处于选中状态,因为每次点击都是闪一下就过了,想选中那个值

你点击了,就是响应了当前的item,那么你所说的一闪而过只是说显示效果上一闪而过,那么你点击之后,将该item的背景置换成一个有明显标志的选中背景就行。。

㈣ 如何设置 android gridview 怎么设置 , 一些item可以点击,另外.....

这个要在代码中进行设置,基本上有两种方式:

  1. 在GridView所在的 activity(或者fragment)中, 找到该View,监听点击事件:


    gridView.setOnItemClickListener(newAdapterView.OnItemClickListener(){
    @Override
    publicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){
    //点击item触发,进行判断,如果需要处理点击,就进行处理,否则,什么也不做
    if(/*处理点击条件*/){
    //要做的事
    }
    }
    });
  2. 在自己写的GridView对应的适配器中(一般继承于BaseAdapter)的getView中进行判断,如果是需呀处理的item, 就调用setOnClickListener,并定义相应的点击事件,否则可以不绑定点击事件。

㈤ Android 如图所示。gridview怎么实现单选,且item选中时。item里的文字颜色改变

最好的方法是在代码中去设置一个变量,在适配器中获取这个变量,从而判断是否选中

㈥ android怎么让listview的checkbox单选

还是先来看看是不是你想要的效果:

不废话,直接上代码,很简单,代码里都有注释

单选

public class SingleActivity extends AppCompatActivity {

private ListView listView;

private ArrayList<String> groups;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_single);

listView = (ListView) this.findViewById(R.id.lvGroup);

groups = new ArrayList<String>();

groups.add("11");

groups.add("22");

groups.add("33");

groups.add("44");

groups.add("55");

groups.add("66");

groups.add("77");

AdapterView.OnItemClickListener listItemClickListener = new AdapterView.OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

// 取得ViewHolder对象,这样就省去了通过层层的findViewById去实例化我们需要的cb实例的步骤

SingleAdapter.ViewHolder viewHolder = (SingleAdapter.ViewHolder) view.getTag();

viewHolder.cb.toggle();// 把CheckBox的选中状态改为当前状态的反,gridview确保是单一选中

}

};

SingleAdapter adapter = new SingleAdapter(this, groups);

listView.setAdapter(adapter);

listView.setOnItemClickListener(listItemClickListener);

}

}

Adapter:

public class SingleAdapter extends BaseAdapter {

private Activity activity;//上下文

private ArrayList<String> list;

private LayoutInflater inflater = null;//导入布局

private int temp = -1;

public SingleAdapter(Activity context, ArrayList<String> list) {

this.activity = context;

this.list = list;

inflater = LayoutInflater.from(context);

}

@Override

public int getCount() {

return list.size();

}

@Override

public Object getItem(int position) {

return list.get(position);

}

@Override

public long getItemId(int position) {

return position;

}

//listview每显示一行数据,该函数就执行一次

@Override

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

ViewHolder holder = null;

if (convertView == null) {//当第一次加载ListView控件时 convertView为空

convertView = inflater.inflate(R.layout.group_item_view, null);//所以当ListView控件没有滑动时都会执行这条语句

holder = new ViewHolder();

holder.tv = (TextView) convertView.findViewById(R.id.item_tv);

holder.cb = (CheckBox) convertView.findViewById(R.id.item_cb);

convertView.setTag(holder);//为view设置标签

} else {//取出holder

holder = (ViewHolder) convertView.getTag();

}

//设置list的textview显示

holder.tv.setTextColor(Color.WHITE);

holder.tv.setText(list.get(position));

// 根据isSelected来设置checkbox的选中状况

holder.cb.setId(position);//对checkbox的id进行重新设置为当前的position

holder.cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

@Override

public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {

if (isChecked) {//实现checkbox的单选功能,同样适用于radiobutton

if (temp != -1) {

//找到上次点击的checkbox,并把它设置为false,对重新选择时可以将以前的关掉

CheckBox tempCheckBox = (CheckBox) activity.findViewById(temp);

if (tempCheckBox != null)

tempCheckBox.setChecked(false);

}

temp = compoundButton.getId();//保存当前选中的checkbox的id值

}

}

});

if (position == temp)//比对position和当前的temp是否一致

holder.cb.setChecked(true);

else

holder.cb.setChecked(false);

return convertView;

}

public static class ViewHolder {

TextView tv;

CheckBox cb;

}

}

多选:

public class MulActivity extends AppCompatActivity {

private ListView listView;

private ArrayList<String> groups;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_mul);

listView = (ListView) this.findViewById(R.id.list);

groups = new ArrayList<>();

groups.add("11");

groups.add("22");

groups.add("33");

groups.add("44");

groups.add("55");

groups.add("66");

groups.add("77");

AdapterView.OnItemClickListener listItemClickListener = new AdapterView.OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> parent, View view, int position,

long id) {

// 取得ViewHolder对象,这样就省去了通过层层的findViewById去实例化我们需要的cb实例的步骤

MulAdapter.ViewHolder viewHolder = (MulAdapter.ViewHolder) view.getTag();

viewHolder.cb.toggle();// 把CheckBox的选中状态改为当前状态的反,gridview确保是单一选中

MulAdapter.getIsSelected().put(position, viewHolder.cb.isChecked());//将CheckBox的选中状况记录下来

}

};

MulAdapter adapter = new MulAdapter(this, groups);

listView.setAdapter(adapter);

listView.setOnItemClickListener(listItemClickListener);

}

}

Adapter:

public class MulAdapter extends BaseAdapter {

private Context context;//上下文

private ArrayList<String> list;

//控制CheckBox选中情况

private static HashMap<Integer, Boolean> isSelected;

private LayoutInflater inflater = null;//导入布局

public MulAdapter(Context context, ArrayList<String> list) {

this.context = context;

this.list = list;

inflater = LayoutInflater.from(context);

isSelected = new HashMap<Integer, Boolean>();

initData();

}

private void initData() {//初始化isSelected的数据

for (int i = 0; i < list.size(); i++) {

getIsSelected().put(i, false);

}

}

@Override

public int getCount() {

return list.size();

}

@Override

public Object getItem(int position) {

return list.get(position);

}

@Override

public long getItemId(int position) {

return position;

}

//listview每显示一行数据,该函数就执行一次

@Override

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

ViewHolder holder = null;

if (convertView == null) {//当第一次加载ListView控件时 convertView为空

convertView = inflater.inflate(R.layout.group_item_view, null);//所以当ListView控件没有滑动时都会执行这条语句

holder = new ViewHolder();

holder.tv = (TextView) convertView.findViewById(R.id.item_tv);

holder.cb = (CheckBox) convertView.findViewById(R.id.item_cb);

convertView.setTag(holder);//为view设置标签

} else {//取出holder

holder = (ViewHolder) convertView.getTag();//the Object stored in this view as a tag

}

//设置list的textview显示

holder.tv.setTextColor(Color.WHITE);

holder.tv.setText(list.get(position));

// 根据isSelected来设置checkbox的选中状况

holder.cb.setChecked(getIsSelected().get(position));

return convertView;

}

public static class ViewHolder {

TextView tv;

CheckBox cb;

}

public static HashMap<Integer, Boolean> getIsSelected() {

return isSelected;

}

public static void setIsSelected(HashMap<Integer, Boolean> isSelected) {

MulAdapter.isSelected = isSelected;

}

}

以上所述是给介绍的Android中ListView + CheckBox实现单选、多选效果

㈦ gridview在android2.1中默认选中第一个,2.2中没有

可以单独写一个item点击事件OnItemClickListener oi = new OnItemClickListener() {
public void onItemClick(android.widget.AdapterView<?> arg0,
android.view.View arg1, int arg2, long arg3) {
};
};
文件设置tag判断

㈧ android中,如何让gridview选中的图片的背景发生改变,并一直显示

第一种是你你点击整个imageview时,在她上面加一种效果(比如变亮了)你可以查查灰暗度怎么实现。表示选中了。
第二种类似:整个布局用framelayout,里面嵌套两个imageView。把第二个imageview设置成gone不可见,当点击第一个imageview时,显示第二个imageview,并在第二个imageview做特效标示选中。

㈨ 如何设置GridView的选中行

document.getElementById(rowId).style.backgroundColor = '#ff0000';}然后在gridview的rowDataBound中, 添加处理按键的事件处理函数和使用鼠标点击某行时的选中事件. protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e){if (e.Row.RowType == DataControlRowType.DataRow){ e.Row.Attributes.Add("onClick", "MarkRow(" + _i.ToString() + ");");_i++;}}当点某行时,直接选中,然后移动方向键则切换不同的选中行; 如果直接按方向键,则从第一行开始标识

㈩ android GridView.requestFocusFromTouch()后为什么setSelection就不好使呢 总是选中第一条, 为什么

setSelection是设置选择项,而requestFocusFromTouch等于是模拟了一个touch事件,点击了girdview,而默认点击的地方就是第一条,点击了第一条,焦点以及selection都到第一条了,所以setSelection就没反应了。

热点内容
济南平安e通如何找回密码 发布:2025-05-19 14:56:58 浏览:175
安卓手机如何找到iccid码 发布:2025-05-19 14:46:51 浏览:226
编译的内核为什么那么大 发布:2025-05-19 14:45:21 浏览:178
什么控制压缩 发布:2025-05-19 14:28:13 浏览:930
网络服务器忙指什么 发布:2025-05-19 14:28:10 浏览:188
服务器有外网ip 发布:2025-05-19 14:02:02 浏览:833
电脑上c语言编程软件 发布:2025-05-19 13:55:17 浏览:125
php56windows 发布:2025-05-19 13:54:23 浏览:717
如何查看攻击过服务器的ip地址 发布:2025-05-19 13:45:44 浏览:942
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:336