我的情况是这样的。 主界面是用Gridview展示出餐厅里的餐桌情况。
默认情况下,每个桌子都是绿色背景。 如果点击该item, 会出现一个Dialog 窗口;提示是否开桌子。 如果点击是,该item的背景颜色更换为红色。
以下是我的代码,请大神们指点迷津!
public class table extends AppCompatActivity implements AdapterView.OnItemClickListener{
GridView gridView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_table);
gridView=(GridView)findViewById(R.id.gridview);
String wtf[]={"1a","1b","1c","1d","2a","2b","2c","2d","3a","3b","3c","3d"};
gridView.setAdapter(new my_adapter(this,wtf));
gridView.setOnItemClickListener(this);
}
@Override
public void onItemClick(final AdapterView> adapterView, View view, final int i, long l) {
new AlertDialog.Builder(this)
.setTitle("台座号 "+adapterView.getItemAtPosition(i).toString())
.setMessage("确定开桌?")
.setPositiveButton("是", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(table.this,adapterView.getItemAtPosition(i).toString()+" 已开桌,请下单。",Toast.LENGTH_SHORT).show();
}
})
.setNegativeButton("否", 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();
for (int i=0;i

如果再次点击同样item, 窗口再次出现,点击 ok 就返回默认颜色。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
用
selector文件做item的背景颜色例如
selector_item_bg.xml放到资源文件夹
res/color/中其中
@color/red和@color/green自己添加然后在item的layout中添加背景色, 就是你的
row.xml关键代码就是
android:background="@color/selector_item_bg"把上面的selector设置成item的背景色.当你点击开桌的时候把对应的item的View
setSelected(true)就可以变成红色了.在代码里面大概是修改你的
onItemClick()关键点就这些, 其他细节百度吧