从同一网格的另一个项目修改网格textview项目

时间:2014-07-13 18:22:04

标签: android arrays gridview

我希望像网格中的一些文本视图一样制作单选按钮效果,所以当单击文本视图时,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。

谢谢!

1 个答案:

答案 0 :(得分:0)

在烧了我的头后,我已经找到了答案。

我用过

grid.getChildAt(position)

访问其他项目视图,然后访问相应的文本视图

相关问题