如何在Android中单击按钮后从GridView中删除按钮?

时间:2012-07-12 05:04:15

标签: java android

我在GridView中添加按钮,按钮以编程方式添加,按钮数量取决于字长,每个按钮都有一个字符,点击时隐藏该按钮,但我想在点击时删除它。

这是代码

SpellAdapter.java

public class SpellAdapter extends BaseAdapter{


    public Context context;
    public char[] word;
        public String spellWord1;
    public SpellAdapter(Context context, char[] word, String orglWord)
    {
        this.context=context;
        this.word=word;
        spellWord1 = orglWord;
    }

    public int getCount() {
        count=word.length;
        return count;
    }

    public Object getItem(int position) {

        return null;
    }

    public long getItemId(int position) {

        return 0;
    }


    public View getView(final int position, View convertView, ViewGroup arg2) {

        View v = convertView;
        if (v == null) 
        {  
             LayoutInflater vi = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
             v = vi.inflate(R.layout.buttonlist, null);
        } 

        final Button btn= (Button)v.findViewById(R.id.letterbtn);

        btn.setText(word[position]+"");

        btn.setOnClickListener(new OnClickListener(){

            public void onClick(View v) 
            {
                letters=btn.getText();
                String word = letters.toString();
                btn.setVisibility(View.GONE); // Here invisible the button.

            }


        });

        return v; 
    }   
}

1 个答案:

答案 0 :(得分:2)

不要提供与words.length一样多的按钮。使用一个不同的数据结构,比如一个布尔数组,它将保持不变或者每个按钮都已经被点击过一次(开始时都是假的)。

然后单击一个按钮时,切换布尔值。

实现适配器的getCount方法时,循环遍历数组并计算任何标志,指示仍然需要显示按钮。

Getview会稍微复杂一点:你会收到一个索引,它将是你阵列中“假”的数量。计算它们并获得正确的按钮进行显示。