gpt4 book ai didi

Android-以编程方式选择 GridView 的项目?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:52:52 27 4
gpt4 key购买 nike

我想在 setAdapter() 方法之后点击一个项目。

考虑一下,如果您已经在您的 Activity 中全局声明并初始化了一个 Button,那么您可以从该 Activity 的任何范围内以编程方式对它执行点击,并且监听器将工作.我想要类似的东西,以便能够对我的 GridView 的任何项目执行点击。

到目前为止,我已经一一尝试了以下所有方法,但似乎都没有用,我尝试了不同的堆栈问题,但甚至没有一个答案对我有用。 iconsGrid.setSelection(2);, iconsGrid.setSelected(true);, iconsGrid.performClick();, iconsGrid.performItemClick(iconsGrid, 2, 2);, iconsGrid.performItemClick(iconsGrid, 2, iconsGrid.getItemIdAtPosition(2));,

//Activity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = (TextView) findViewById(R.id.txt);
Integer[] resource_icons = {
R.drawable.ic_attachment,
R.drawable.ic_attachment,
R.drawable.ic_attachment,
R.drawable.ic_attachment,
R.drawable.ic_attachment,
R.drawable.ic_attachment };

GridView iconsGrid = (GridView) findViewById(R.id.gv_icons);
IconGridAdapter iconAdapter = new IconGridAdapter(this, resource_icons);
iconsGrid.setAdapter(iconAdapter);
/*
* I want to perform a click here
*/
}

//Adapter
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater li;
View grid;
if (convertView == null) {
grid = new View(mContext);
li = ((Activity) mContext).getLayoutInflater();
grid = li.inflate(R.layout.grid_cell_imageview, parent, false);
} else {
grid = (View) convertView;
}

ImageView imageView = (ImageView) grid.findViewById(R.id.image);
imageView.setImageResource(imageId[position]);

return grid;
}

最佳答案

好的,我们开始吧

在你的适配器中声明一个字段说

private int selectedPosition=-1;

现在为此创建一个 setter

private void setSelectedPosition(int position)
{
selectedPosition=position;
}

现在在你的 getView 方法中

if(position==selectedPosition)
{
grid.setSelected(true);

//OR

grid.setBackgroundColor(<Some Color>);
}

设置适配器后

adapter.setSelectedPosition(<your desired selected item position>);

adapter.notifyDataSetChanged();

关于Android-以编程方式选择 GridView 的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31159080/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com