0

私はアンドロイドが初めてで、GridLayoutですべてのビューの位置を取得するために使用される標準的な方法があるかどうか疑問に思っています。

このように GridLayout からビューを動的に追加および削除しています

        addButton.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            addButton.setVisibility(View.INVISIBLE);
            Button newButton = new Button(LayoutAnimationsByDefault.this);
            gridContainer.getColumnCount();
            newButton.setText(String.valueOf("position#"+"huh"));
            newButton.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    gridContainer.removeView(v);
                    addButton.setVisibility(View.VISIBLE);
                  }
            });
            gridContainer.addView(newButton, Math.min(-1, gridContainer.getChildCount()));
        }

    });

私もこれを試しました..

     addButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
            addButton.setVisibility(View.INVISIBLE);
            Button newButton = new Button(LayoutAnimationsByDefault.this);
            Object tag =v.getTag();
            if(tag!=null)
            {      
                int position = (Integer)tag;
                Log.v("onClick", "Position: " + position);
                newButton.setTag(position);
                newButton.setText(String.valueOf("position#"+position));
                TextView text1 = (TextView) newButton;
                String message = "positionis" + position +       text1.getText().toString();
                Toast.makeText(LayoutAnimationsByDefault.this, message, Toast.LENGTH_LONG).show();
             }
            newButton.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {
                    gridContainer.removeView(v);
                    addButton.setVisibility(View.VISIBLE);
                  }
            });
            gridContainer.addView(newButton, Math.min(-1, gridContainer.getChildCount()));
            gridContainer.getColumnCount();

        }

これにより、新しいボタンが作成されますが、内部には何もなく、テキストも何もありません

アイテムが追加されるたびに、グリッドレイアウト内の各ビューの更新された位置を更新および取得する方法を理解しようとしています.GridLayoutで再配置されます。

位置とは、x、y 座標を意味するのではなく、リストビューで見られる 0、1、2、3、4 の位置を意味します。

getColumnCount(); を試しました。getChildAt(); ActionListener() ActionPerformed() など ヘルプ、ポインタ、ヒントはありますか?ありがとう!!

4

0 に答える 0