0

我在 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; 
    }   
}
4

1 回答 1

2

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

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

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

Getview 会稍微复杂一点:您将收到一个索引,它将是您的数组中“假”的数量。所以计算它们并获得正确的按钮来显示。

于 2012-07-12T05:11:12.750 回答