0

助けが必要です。以下のコードを使用してそれらを削除した後、レイアウトとコンテナーが長引いています。

たとえば、精査中のプログラムの一部の使用方法を説明する小さなテキストを追加するページ1があり、次のページでは、ユーザーがテキストName:のラベルがある場所に名前を追加し、EditTextを追加できます。その隣の名前。

両方のコンポーネントが「スティック」ですが、EditTextは複数回複製されており、理由がわかりません。こだわりもやめたいです。

固執するということは、単にビューが本来のようにビューを離れない(まだ表示されている)ことを意味します。

ここにいくつかのコードがあります。

        if(pageCount == lastPageCount--)
        {
            page2Layout.removeAllViews();
            //page2Layout.setVisibility(View.GONE);
            //Reset all text views.
            helpText.setText("");
        }

        helpText.setLayoutParams(params);
        helpText.setText("You cannot view this part sorry :S\n\n" + 
        "You cannot view this part sorry :S.\n" +
        "You cannot view this part sorry :S");
        page1Layout.addView(helpText);

        page1Layout.setVisibility(View.VISIBLE);
    }
    else if(pageNumber == 2)
    {
        if(pageCount == lastPageCount++)
        {
            //page1Layout.setVisibility(View.GONE);
            page1Layout.removeAllViews();
        }
        else if (pageCount == lastPageCount++)
        {
            page3Layout.setVisibility(View.GONE);
        }
        //Name Position + Containers etc
        LinearLayout nameLayout = new LinearLayout(this);
        nameLayout.setOrientation(LinearLayout.HORIZONTAL);
        nameLayout.setLayoutParams(params);
        TextView nameLabel = new TextView(this);
        nameLabel.setLayoutParams(params);
        nameLabel.setText("Name: ");
        EditText nameTextField = new EditText(this);
        nameTextField.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
        //All to name layout.
        nameLayout.addView(nameLabel);
        nameLayout.addView(nameTextField);
        page2Layout.addView(nameLayout); 
        page2Layout.setVisibility(View.VISIBLE);
    }
4

1 に答える 1

0

コードを長時間見つめているときにコーダーが犯す可能性のある愚かな間違いに注意してください。

    if(pageCount == lastPageCount++)

同様に立ち往生している人の場合、lastPageCount ++は、ステートメントの実行後にlastPageCountをインクリメントします。

したがって、間違ったコードが実行されます。

于 2012-06-13T23:05:44.600 に答える