Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我想添加动态布局与文本视图和编辑按钮上的文本点击N级_Android_User Interface_Android Edittext_Textview - Fatal编程技术网

Android 我想添加动态布局与文本视图和编辑按钮上的文本点击N级

Android 我想添加动态布局与文本视图和编辑按钮上的文本点击N级,android,user-interface,android-edittext,textview,Android,User Interface,Android Edittext,Textview,当点击添加手机文本时,我想动态添加视图添加手机下面的视图:“手机”是文本视图,右侧是编辑文本 这需要用于N级..当用户单击添加电话视图时将添加 如何执行此操作?请尝试此代码。这可能会对您有所帮助 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match

当点击添加手机文本时,我想动态添加视图添加手机下面的视图:“手机”是文本视图,右侧是编辑文本

这需要用于N级..当用户单击添加电话视图时将添加


如何执行此操作?

请尝试此代码。这可能会对您有所帮助

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

<Button
    android:id="@+id/btn_Click"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="10dp"
    android:text="Click" />

<LinearLayout
    android:id="@+id/linearView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" />
</LinearLayout>
因此,要从EditText获取值,请使用以下代码。我在Toast中显示了该值,您可以使用字符串数组来存储所有动态创建的EditText值

    public void getAllEditTextValues(View view) {
    View v = null;
    for (int i = 0; i < linearView.getChildCount(); i++) {
        v = linearView.getChildAt(i);
        if (v instanceof LinearLayout) {
            View tempView = ((LinearLayout) v).getChildAt(0);
            View et = ((LinearLayout) tempView).getChildAt(1);
            String etValue = null;
            if (et instanceof EditText) {
                etValue = ((EditText) et).getText().toString();
            }
            Toast.makeText(this, "" + etValue, Toast.LENGTH_SHORT).show();
            // Use Array to Store all values of EditText
        }
    }
}

将XML创建为自定义_row.XML,代码为:

  <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="horizontal"
          android:layout_width="match_parent"
          android:layout_height="wrap_content">
<ImageView
    android:layout_width="0dp"
    android:layout_weight="0.1"
    android:id="@+id/crossImage"
    android:layout_gravity="center_vertical"
    android:layout_height="wrap_content"
    android:src="@drawable/cross_image"/>

<TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="0.45"
    android:id="@+id/columnSpinner"
    android:text="demo"

    android:layout_gravity="center"/>

<EditText
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="0.45"
    android:id="@+id/contentValueEditText"/>

</LinearLayout>
现在,您可以通过以下代码访问编辑文本:

 LinearLayout singleLayout = (LinearLayout)linearView.findViewWithTag("LinearLayout"+index);
 EditText editText = singleLayout.findViewWithTag("EditText"+index);

我尝试添加动态视图,但没有在图像中获得类似视图的显示,而且我只能添加一个视图..并且在获取添加的edittext ID时遇到问题dynamicallylol@KulsDroid想说,到目前为止您尝试了哪些代码?可能重复了类似的尝试:LinearLayout ll=IDR.id.l_电话的LinearLayoutIndViewByIDR.id.l_电话;//add edittext edittext et=new EditTextthis;LinearLayout.LayoutParams p=新的LinearLayout.LayoutParamsViewGroup.LayoutParams.MATCH_父级,ViewGroup.LayoutParams.WRAP_内容;et.setLayoutParamsp;et.setTextText;et.setTextColorgetResources.getColorR.color.black;et.setIdnumberOfLines+1;ll.addvieet;numberOfLines++;我添加了edittext,但我无法实现类似于我上传的图像的设计谢谢,但我想你在写这篇文章之前错过了我的评论。ans,我已经通过创建子xml并放大子xml的视图得到了这一点。无论如何,谢谢你。。我现在面临的一个问题是,如何获得动态创建的edittext的价值?这是因为我们知道动态创建的布局层次结构。这里我们只需要检查视图是否有EditText实例。因为我们知道EditText是线性布局的第二个子级,所以我使用索引1来获取EditText的视图,即getChildAt1。这可能会对您有所帮助。谢谢..我正在获取edittext的值,但根据图片,UI不正确。。当我添加视图动态..它被添加到我的“添加电话”文本上方,并且水平灰线也丢失。。你能帮忙吗?真的很感谢你的帮助。谢谢你。好的,我会帮你处理丢失的水平灰线。
  <?xml version="1.0" encoding="utf-8"?>
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<LinearLayout
android:id="@+id/linearView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" />
 <Button
android:id="@+id/btn_Click"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="Click" />


</LinearLayout>
  int index=0;
  linearView = (LinearLayout) findViewById(R.id.linearView);

 @OnClick(R.id.btn_Click)
 public void click() {
final LinearLayout singleInsertView1 = (LinearLayout) LayoutInflater.from(QueryRunner.this).inflate(R.layout.insert_single_item, null);

   EditText editText = (EditText)singleInsertView1.findViewById(R.id.contentValueEditText);
   editText.setTag("EditText"+index);

   singleInsertView1.setTag("LinearLayout"+index);
   contentViewAdder.addView(singleInsertView1);

   index++;
}
 LinearLayout singleLayout = (LinearLayout)linearView.findViewWithTag("LinearLayout"+index);
 EditText editText = singleLayout.findViewWithTag("EditText"+index);