2011-07-22 121 views
3

我正在處理SMS應用程序。我有一個「+」按鈕,當用戶單擊該按鈕時,新的ExitText將出現在現有的下方,供用戶輸入多個電話號碼發送文本。任何人都可以請幫助創建一個新的EditText時按下按鈕?Android:按下按鈕時以編程方式添加EditText

謝謝你,

+0

顯示您的佈局,其中+ is.also要添加EditText.It按鈕是所有關於在佈局中添加視圖 – Rasel

+1

@rds:我很抱歉,但我是Android新手,剛開始使用它。我試圖谷歌它,但無法找到它,並要求我在這裏發佈了一個問題。 – aa051

回答

5

我會保持EditTextList一個對象,並添加一個新的

EditText toAdd = new EditText(this); 
list.add(toAdd); 

對按鈕按下列表。另外,請閱讀此鏈接以瞭解如何將新的EditText添加到您當前的佈局。 How to lay out Views in RelativeLayout programmatically?

當您知道用戶已完成並想要保存號碼時,請遍歷ListEditText對象。

+0

謝謝你的幫助,我會盡力實現這一點。 – aa051

2

我構建了一個應用程序,它根據數據庫中的行數來動態添加按鈕。

基本上我發現它更容易創建長度等於按鍵的數字鍵的排列,我需要: 在你的情況......

final int PHONE_NUMBERS = 0; 

final int OTHER_STUFF = 1; 

final int MORE_STUFF = 2; 

LinearLayout MyEditTextLayout; 

EditText []DynamicFields = new EditText[3]; 

*note these should be declared outside of onCreate* 

then within onCreate { 

MyEditTextLayout = (LinearLayout) findViewById (R.id.Whatever_you_named_your_layout_in_xml); 

} 

then in your onClickListener dialog: 

final EditText editText = new EditText(); 

if(button = myPhoneNumberButton) 
{ 

editText.layout_width = "fill_parent"; 

editText.hint = "Enter Phone Numbers Here"; 

DynamicFields[PHONE_NUMBERS] = editText; //that way you can refer to your editTexts later 

MyEditTextLayout.addView(editText); 

} 

請注意我在工作中快速輸入了這一點所以代碼可能無法正常工作,但這應該給你一個良好的開始評論,如果您有任何問題!

-1

爲了內部創建一個EditText一個對話框,您可以在按鈕的OnClickListener做到這一點:

final FrameLayout fl = new FrameLayout(ContactView.this); 
final EditText txtSms = new EditText(ContactView.this); 
txtSms.setRawInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE); 
txtSms.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES); 
txtSms.setHorizontallyScrolling(false); 
txtSms.setVerticalScrollBarEnabled(true); 
txtSms.setGravity(Gravity.CENTER); 
fl.addView(txtSms, new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT)); 

    final AlertDialog.Builder builder = new AlertDialog.Builder(ContactView.this); 
     //building the custom AlertDialog 
     builder.setView(fl).setTitle("Enviar mensaje").setCancelable(false) 
     .setPositiveButton("Send", new DialogInterface.OnClickListener(){ 

        //What happens when the positive button is pressed 
      public void onClick(DialogInterface d, int which){ 
       if(txtSms.getText().toString().length() != 0){ 
        enviarSms(txtSms.getText().toString()); 
        d.dismiss(); 
       }else{ 
        Toast.makeText(((Dialog) d).getContext(), "Can't send an empty message", Toast.LENGTH_SHORT).show(); 
       } 
      } 
        //What happens when the negative button is pressed 
     }).setNegativeButton("Cancel", new DialogInterface.OnClickListener(){ 
       public void onClick(DialogInterface d, int which) { 
       d.dismiss(); 
      } 
     }).create().show(); 
相關問題