我希望像网格中的一些文本视图一样制作单选按钮效果,所以当单击文本视图时,textview文本会发生变化,但如果单击其他文本视图,之前单击的文本视图将再次变为空白,从而更改最后一个文本视图单击项目。
private Hay_nohay_familia[] datos = new Hay_nohay_familia[]{
new Hay_nohay_familia("HAY", ""),
new Hay_nohay_familia("NO HAY",""),
new Hay_nohay_familia("FAMILIA", ""),
new Hay_nohay_familia("", "1"),
new Hay_nohay_familia("", "1"),
new Hay_nohay_familia("", "1"),};
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.prueba);
final GridView grid;
final AdaptadorFecha adaptador2 =
new AdaptadorFecha(this);
grid = (GridView)findViewById(R.id.hay_nohay_familia);
grid.setAdapter(adaptador2);
grid.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
TextView fecha = ((TextView)v.findViewById(R.id.fecha));
fecha.setText(new SimpleDateFormat("dd/MM/yy").format(new Date()));
}
});
}
class AdaptadorFecha extends ArrayAdapter<Hay_nohay_familia> {
Activity context;
AdaptadorFecha(Activity context) {
super(context, R.layout.grd_radio, datos);
this.context = context;
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View item = inflater.inflate(R.layout.grd_radio, null);
TextView hay = (TextView)item.findViewById(R.id.hay_nohay_familia);
hay.setText(datos[position].getDatos());
TextView fecha = (TextView)item.findViewById(R.id.fecha);
fecha.setText(datos[position].getFecha());
return(item);
}
}
问题是我无法访问onitemclick上的其他textview文本,以便再次将它们设置为空白。我提出了一些想法,比如动态更改数组数据,并在刷新适配器并将其他所有其他文件转换为默认文本后,从我的自定义适配器调用的函数中提供我想要的单击textview的日期值,但我是新的我也不知道如何修改那个数组。
PD:添加adapter.notifyDataSetChanged();在onitemclick内部不起作用,因为它还清理了我想要更改的textview。
谢谢!
答案 0 :(得分:0)
在烧了我的头后,我已经找到了答案。
我用过
grid.getChildAt(position)
访问其他项目视图,然后访问相应的文本视图