Android Gridview无法更改正在单击的项目的背景颜色

Android Gridview无法更改正在单击的项目的背景颜色,android,android-gridview,Android,Android Gridview,我使用gridview显示一些具有表ID的表。当我单击其中一个表时,将出现一个对话框,提示是否打开新表 如果单击是,请将背景颜色更改为红色。但是,看起来像下面的两种方法 view.setBackgroundColor(Color.parseColor("#ff0000")); view.setBackgroundColor(0xFF00FF00); 没有工作 这是完整的编码 @Override protected void onCreate(Bundle savedInstanceState)

我使用gridview显示一些具有表ID的表。当我单击其中一个表时,将出现一个对话框,提示是否打开新表

如果单击是,请将背景颜色更改为红色。但是,看起来像下面的两种方法

view.setBackgroundColor(Color.parseColor("#ff0000"));
view.setBackgroundColor(0xFF00FF00);
没有工作

这是完整的编码

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_table);

    gridView=(GridView)findViewById(R.id.gridview);
    String table_names[]={"1a","1b","1c","1d","2a","2b","2c","2d","3a","3b","3c","3d"};
    gridView.setAdapter(new my_adapter(this,table_names));
    gridView.setOnItemClickListener(this);
}

@Override
public void onItemClick(final AdapterView<?> adapterView, final View view, final int i, long l) {

    new AlertDialog.Builder(this)
            .setTitle("Table number: "+adapterView.getItemAtPosition(i).toString())
            .setMessage("Open Table?")
            .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    view.setBackgroundColor(Color.parseColor("#ff0000"));
                }
            })
            .setNegativeButton("No", null)
            .show();
}
}

class my_adapter extends BaseAdapter{

LayoutInflater inflater=null;
Context ctx;
String table_names[];
ArrayList store_table_no;

my_adapter(Context ctx, String table_names[]){
    this.ctx=ctx;
    this.table_names=table_names;
    store_table_no=new ArrayList<Integer>();
    for (int i=0;i<table_names.length;i++){
        store_table_no.add(table_names[i]);
    }
}

@Override
public int getCount() {
    return store_table_no.size();
}

@Override
public Object getItem(int i) {
    return store_table_no.get(i);
}

@Override
public long getItemId(int i) {
    return i;
}

@Override
public View getView(int i, View view, ViewGroup viewGroup) {

    View row=view;

    if(row==null){
        inflater=(LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        row=inflater.inflate(R.layout.single,null);
    }

    TextView tv_table_no=(TextView)row.findViewById(R.id.table_no);

    tv_table_no.setText(""+store_table_no.get(i));

    return row;
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_表);
gridView=(gridView)findViewById(R.id.gridView);
字符串表_名称[]={“1a”、“1b”、“1c”、“1d”、“2a”、“2b”、“2c”、“2d”、“3a”、“3b”、“3c”、“3d”};
setAdapter(新的my_适配器(这个,表_名称));
setOnItemClickListener(this);
}
@凌驾
public void onItemClick(最终适配器视图、最终视图视图、最终int i、长l){
新建AlertDialog.Builder(此)
.setTitle(“表号:+adapterView.getItemAtPosition(i).toString())
.setMessage(“打开表?”)
.setPositiveButton(“是”,新的DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
view.setBackgroundColor(Color.parseColor(#ff0000”);
}
})
.setNegativeButton(“否”,null)
.show();
}
}
类my_适配器扩展BaseAdapter{
排气充气机=空;
上下文ctx;
字符串表_名称[];
ArrayList商店\表格\编号;
my_适配器(上下文ctx,字符串表_名称[]){
这个.ctx=ctx;
表名称=表名称;
store_table_no=new ArrayList();

对于(int i=0;i在对话框中设置此代码是单击

gv.getChildAt(position).setBackgroundColor(Color.RED);

这里的位置是您的gridview子位置。这取决于您获取此位置的方式。

请同时发布您的
布局的
代码。@jaydroider上载了single.xml plz检查
gv.getChildAt(position).setBackgroundColor(Color.RED);