-1

I need the value of inflated editText, I am inflating the design layout which is the child layout and MainActivity is a parent layout. below is the MainActivity class

public class MainActivity extends AppCompatActivity {

 View array[];
 String text;
 LinearLayout container;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    EditText edittext1 = (EditText) findViewById(R.id.email);
    for (int i = 0; i < 4; i++) {
        LinearLayout myLayout = (LinearLayout) findViewById(R.id.linearlayout);
        View v = getLayoutInflater().inflate(R.layout.design, myLayout, false);
        myLayout.addView(v);
        int id = View.generateViewId();
        v.setId(id);          

        EditText edittext = (EditText) v.findViewById(R.id.edittext);
        text = edittext.getText().toString();

    }
    edittext1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(getApplication(), "" + text, Toast.LENGTH_SHORT).show();
        }
    });

 }

}
PEHLAJ
  • 9,980
  • 9
  • 41
  • 53
Kevan Aghera
  • 241
  • 3
  • 14

2 Answers2

0

Here is total code of store object and retrieval, read all comments please,

public class MainActivity extends AppCompatActivity {
View array[];
String text;
LinearLayout container;
// list of edittext
List<EditText> edtlist = new ArrayList()<EditText>;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    EditText edittext1 = (EditText) findViewById(R.id.email);
    for (int i = 0; i < 4; i++) {
        LinearLayout myLayout = (LinearLayout) findViewById(R.id.linearlayout);
        View v = getLayoutInflater().inflate(R.layout.design, myLayout, false);
        myLayout.addView(v);
        int id = View.generateViewId();
        v.setId(id);          

        EditText edittext = (EditText) v.findViewById(R.id.edittext);
    // store object in list
    edtlist.add(edittext);
        text = edittext.getText().toString();

    }
    edittext1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(getApplication(), "" + text, Toast.LENGTH_SHORT).show();
        }
    });
    //  call this whenever you want in any event
    // here 0 is first edittext
    // you can get all text value using for loop
    //  list.get(0).getText().toString();
}
}
Jaydeep Devda
  • 727
  • 4
  • 18
0

You are looking for something like ,I'm not sure about it maybe it works maybe it wont.! it just a rough concept based code havnt Implemented yet.!

List<EditText> edtxtList;
List<String> edtxtStrList;


 for (int i = 0; i < 4; i++) {
        LinearLayout myLayout = (LinearLayout) findViewById(R.id.linearlayout);
        View v = getLayoutInflater().inflate(R.layout.design, myLayout, false);
        myLayout.addView(v);
        int id = View.generateViewId();
        v.setId(id);          

        EditText edittext = (EditText) v.findViewById(R.id.edittext);
        text = edittext.getText().toString();

        edtxtList.add(edittext);// try something like this.!

    }

Then use Foreach loop on EditText;

 for (EditText edText : edtxtList) {

   if(!edText.getText().trim()=null){
         edtxtStrList.add(edText.getText().trim()); 
    }




}

I havnt tried It yet but maybe this ruff concept may helps you.!

Maybe this Method helps You.!

ArrayList<EditText> myEditTextList = new ArrayList<EditText>();

for( int i = 0; i < myLayout.getChildCount(); i++ )
  if( myLayout.getChildAt( i ) instanceof EditText )
    myEditTextList.add( (EditText) myLayout.getChildAt( i ) );

In Above code mLayout is your layout.!

<LinearLayout android:id="@+id/myLinearLayout" >
   //Here is where your EditTexts would be declared
</LinearLayout>
Atif AbbAsi
  • 5,633
  • 7
  • 26
  • 47