2012-12-30 22 views
0

我对Android非常陌生。点击按钮,以相同的形式创建一个图层。 Android

我想创建一个动态的OnClick按钮功能。

enter image description here

的的OnClick “+” 上方,它应该创建一个其他层,像这样的下方。

enter image description here

我的困惑,我的整个设计UI是layout.xml。

我们如何在OnClick的“+”按钮的UI中包含另一个图层。

任何输入都会有帮助。

谢谢!

+0

获得价值一下怎么样的EditText组成项目的列表视图 - 微调 - +按钮?无论何时按下按钮,您都可以更新数据模型并刷新UI。 – fedepaol

+0

这很简单。将特定的行布局保存在其自己的文件中,并在每次单击“+”时使用LayoutInflater“膨胀”新行。 – Sam

回答

0

在您的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()); 
       } 
      } 
1

您可以通过编程方式进行此操作。 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的意见,但你的想法。

+0

+1在新年前夕抽出时间和写出答案......新年快乐! – MKJParekh

相关问题