我对Android非常陌生。点击按钮,以相同的形式创建一个图层。 Android
我想创建一个动态的OnClick按钮功能。
的的OnClick “+” 上方,它应该创建一个其他层,像这样的下方。
我的困惑,我的整个设计UI是layout.xml。
我们如何在OnClick的“+”按钮的UI中包含另一个图层。
任何输入都会有帮助。
谢谢!
我对Android非常陌生。点击按钮,以相同的形式创建一个图层。 Android
我想创建一个动态的OnClick按钮功能。
的的OnClick “+” 上方,它应该创建一个其他层,像这样的下方。
我的困惑,我的整个设计UI是layout.xml。
我们如何在OnClick的“+”按钮的UI中包含另一个图层。
任何输入都会有帮助。
谢谢!
在您的XML中有一个Vertical Linear Layout
在运行时添加和删除EditTexts
,在这里我向您展示了我在演示中使用的代码。处理和维护使用情况。
的onclick你加号和减号按钮点击
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]);
}
你垂直的LinearLayout包含所有的EditText孩子的
LinearLayout lnpolloptions = (LinearLayout) findViewById(R.id.lnpolloptions);
的阵列在运行时删除的edittext
private EditText[] txtoption = new EditText[4];
的onclick的提交给每个文本框
int length = txtoption.length;
for (int i = 0; i < length; i++) {
if (txtoption[i] != null) {
Log.i("Value",""+txtoption[i].getText());
}
}
您可以通过编程方式进行此操作。 XML用于静态布局。
原谅我的伪安卓
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());
}
类似的规定,我obviosuly离开了格式,增加布局PARAMS的意见,但你的想法。
+1在新年前夕抽出时间和写出答案......新年快乐! – MKJParekh
获得价值一下怎么样的EditText组成项目的列表视图 - 微调 - +按钮?无论何时按下按钮,您都可以更新数据模型并刷新UI。 – fedepaol
这很简单。将特定的行布局保存在其自己的文件中,并在每次单击“+”时使用LayoutInflater“膨胀”新行。 – Sam