簡體   English   中英

創建動態文本字段

[英]Create dynamically text fields

我試圖讓我的按鈕創建一個文本字段,用戶可以在其中輸入信息。 通過這種方式,他們只能創建盡可能多的行。 另外,有沒有辦法一次創建多個字段? 所以,它最終會是這樣的:

“添加事件”(屏幕的其余部分是空白的,直到他們單擊該按鈕)

文本框 1/ 文本框 2/ 文本框 3

(一旦他們按下那個按鈕,當然沒有下划線,只是一個例子)

所以他們可以在那里輸入他們想要的信息。 如果他們想要另一行,他們再次單擊添加按鈕。

我應該使用 onClickListener 嗎? 我對如何讓按鈕為用戶創建該字段感到困惑。

public class BudgetScreen extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_budget_screen);

    Button addBillExpense = (Button) findViewById(R.id.addBillExpense);

    addBillExpense.setOnClickListener(new Button.OnClickListener() {
        public void onClick (View v) {

            TextView inputField = new TextView(BudgetScreen.this);

        }
    });
}

}

這就是我迄今為止所擁有的。 我已經被困在這個問題上一分鍾了。 我知道我還沒有使用過“inputField”。

假設您有以下布局 xml:

<LinearLayout ...>
   <Button .../>
   <LinearLayout ...
    android:id="@+id/holder"
    android:orientation="vertical">

   </LinearLayout>
</LinearLayout>

在按鈕onClickListener您可以有以下內容:

LinearLayout layout = (LinearLayout) findViewById(R.id.holder);
EditText et = new EditText(this);
LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
layout.addView(et,lp);

您可以更改LayoutParams以獲得您喜歡的布局。

如果您想在一行中包含多個 EditText,您可以執行以下操作:

    final int NUM_EDITTEXT_PER_ROW = 3;
    LinearLayout layout = (LinearLayout) findViewById(R.id.holder);
    Display display = ((WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
    int width = display.getWidth()/NUM_EDITTEXT_PER_ROW;
    LinearLayout tempLayout = new LinearLayout(this);
    tempLayout.setOrientation(LinearLayout.HORIZONTAL);
    for(int i=0;i<NUM_EDITTEXT_PER_ROW;i++){
        EditText et = new EditText(this);
        LayoutParams lp = new LayoutParams(width,LayoutParams.WRAP_CONTENT);
        tempLayout.addView(et,lp);
    }
    layout.addView(tempLayout);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM