2012-07-03 49 views
2

我如何在android中的運行時動態地定位編輯文本?以編程方式在android中定位EditText組件?

followig是我的代碼:

public class ABCActivity extends Activity { 
    EditText ed; 

    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    ed = new EditText(ABCActivity.this); 
    ed.setEnabled(false);  
    layout =new LinearLayout(this); 
    LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT, 1.0f);    
    layout.setLayoutParams(params); 
    btn = new Button(this); 
    btn.setLayoutParams(params); 
    btn.setText("Change"); 

    RelativeLayout.LayoutParams params2 = (RelativeLayout.LayoutParams) ed.getLayoutParams(); 
    params2.leftMargin = 10; 
    params2.topMargin = 10; 
    ed.setLayoutParams(params2); 

    layout.addView(btn); 
    layout.addView(ed); 

    }  
} 

給人以強制關閉:

RelativeLayout.LayoutParams params2 = (RelativeLayout.LayoutParams) ed.getLayoutParams(); 

錯誤:空指針異常 我試圖用相對佈局..... 但不工作

+1

你想要什麼。請提供簡要信息。 –

回答

1

Lars Vogel here有很棒的教程。基本上你必須使用特定於Layout的LayoutParams來通過Java定位視圖。

+0

感謝拉格哈夫這是一個非常好的教程 – Joyson

1

你可以設置你的EditText這樣的位置,我也給它的10虛值,10

  RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) ed.getLayoutParams(); 
     params.leftMargin = 10; 
     params.topMargin = 10; 
     ed.setLayoutParams(params); 
+0

我已經在使用線性佈局。我如何使用相對佈局以及線性佈局將sum1 plz讓我知道它給我強制關閉,當我嘗試使用相對佈局。 – Joyson

+0

如果您的控件的父項是「LinearLayout」而不是「RelativeLayout」,則使用「LinearLayout.LayoutParams」而不是「RelativeLayout.LayoutParams」。 Aqif –

相關問題