第一組edittexts被整齊地添加到另一個下方,但再次單擊該按鈕時,視圖重疊。我想我需要適當地設置利潤率,但我無法弄清楚。請幫忙。我想以編程方式向RelativeLayout添加一對EditTexts,點擊一個按鈕
public class MainActivity extends Activity implements OnClickListener {
Button btn_task, btn_subTask;
EditText et_task, et_subTask;
RelativeLayout lv_subtask, lv_task;
int i = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_task = (Button) findViewById(R.id.btn_addTask);
btn_subTask = (Button) findViewById(R.id.btn_subTask);
lv_subtask = (RelativeLayout) findViewById(R.id.lv_subtask);
lv_task = (RelativeLayout) findViewById(R.id.lv_task);
// btn_task.setOnClickListener(this);
btn_subTask.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onClick(View v) {
if (v.equals(btn_subTask)) {
EditText et_title = new EditText(this);
EditText et_date = new EditText(this);
i++;
et_title.setId(i);
et_date.setId(i + 1);
et_title.setHint("Enter sub task");
et_date.setHint("Enter end date");
// lv_subtask.setVisibility(View.VISIBLE);
RelativeLayout.LayoutParams EditLayoutParams = new RelativeLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
RelativeLayout.LayoutParams DateLayoutParams = new RelativeLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
DateLayoutParams.setMargins(5, 10, 0, 0);
EditLayoutParams.setMargins(5, 20, 0, 0);
if (i != 1) {
EditLayoutParams.addRule(RelativeLayout.BELOW, i + 1);
DateLayoutParams.addRule(RelativeLayout.BELOW, i + 2);
} else {
DateLayoutParams.addRule(RelativeLayout.BELOW, 1);
}
et_title.setLayoutParams(EditLayoutParams);
et_date.setLayoutParams(DateLayoutParams);
(lv_subtask).addView(et_title);
(lv_subtask).addView(et_date);
}
}
}
你爲什麼不'else'聲明中添加任何'Rule'到'EditLayoutParams'? – 2014-11-21 20:28:53