私はAndroidを初めて使用します。
動的なOnClickボタン機能を作成したいと思います。
上記の「+」をクリックすると、以下のような別のレイヤーが作成されます。
私の混乱、私のデザインUI全体はlayout.xmlにあります。
「+」ボタンのOnClickでUIに別のレイヤーを含めるにはどうすればよいですか。
任意の入力が役立ちます。
ありがとう !!!
私はAndroidを初めて使用します。
動的なOnClickボタン機能を作成したいと思います。
上記の「+」をクリックすると、以下のような別のレイヤーが作成されます。
私の混乱、私のデザインUI全体はlayout.xmlにあります。
「+」ボタンのOnClickでUIに別のレイヤーを含めるにはどうすればよいですか。
任意の入力が役立ちます。
ありがとう !!!
これはプログラムで行うことができます。XMLは静的レイアウト用です。
すみません、疑似Android:
private LinearLayout root;
public void onCreate(Bundle b){
LinearLayout root = new LinearLayout(this);
root.addChild(createGlucoseReadingView());
setContentView(root);
}
private View createGlucoseReadingView() {
LinearLayout glucoseRoot = new LinearLayout(this);
glucoseRoot.addChild(new TextView(this));
return glucoseRoot;
}
public void onPlusClick(View button){
root.addChild(createGlucoseReadingView());
}
それらの線に沿った何か、私は明らかにフォーマットとビューへのレイアウトパラメータの追加を省略しました、しかしあなたは考えを理解します。
XMLには、実行時Vertical Linear Layout
に追加および削除するものがありEditTexts
ます。ここでは、デモで使用したコードを示しました。使用法を処理および維持するため。
[追加とマイナス]ボタンをクリックしてクリックします
public void onClick(View view) {
super.onClick(view);
switch (view.getId()) {
case R.id.btnadd:
createTextview(counter);
counter++;
if (counter > 3) {
btnAdd.setVisibility(View.GONE);
btnRemove.setVisibility(View.VISIBLE);
}
break;
case R.id.btnremove:
removeView(counter);
txtoption[counter - 1] = null;
counter--;
if (counter < 3) {
btnAdd.setVisibility(View.VISIBLE);
btnRemove.setVisibility(View.GONE);
}
break;
}
}
ビューを作成および削除する機能
private void createTextview(int index) {
txtoption[index] = new EditText(this);
txtoption[index].setSingleLine(true);
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
param.bottomMargin = 10;
txtoption[index].setLayoutParams(param);
txtoption[index].setBackgroundResource(R.drawable.textbox);
txtoption[index].setTypeface(ttfDroidSherif);
lnpolloptions.addView(txtoption[index]);
}
private void removeView(int index) {
lnpolloptions.removeView(txtoption[index - 1]);
}
すべてのedittextの子を含む垂直LinearLayout
LinearLayout lnpolloptions = (LinearLayout) findViewById(R.id.lnpolloptions);
実行時に作成または削除される編集テキストの配列
private EditText[] txtoption = new EditText[4];
送信をクリックして、各テキストボックスから値を取得します
int length = txtoption.length;
for (int i = 0; i < length; i++) {
if (txtoption[i] != null) {
Log.i("Value",""+txtoption[i].getText());
}
}