Show Edittext On Condition
Right now I have an idea for a project and I would like to know if anyone can help me on the same logic. As such I need to create or generate a number of EditText according to amo
Solution 1:
Here is an example of generating EditText items based on the number you enter. You can ignore the scrollview in the layout file I just put it in case someone added a lot of EditText items that would go off the screen.
MainActivity.java
package com.example.test;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;
publicclassMainActivityextendsActivity {
publicstaticfinalStringTAG= MainActivity.class.getSimpleName();
@OverrideprotectedvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
finalEditTextcount= (EditText) findViewById(R.id.count);
finalTextViewoutput= (TextView) findViewById(R.id.output);
finalButtongenerate= (Button) findViewById(R.id.generate);
finalButtonvalues= (Button) findViewById(R.id.values);
finalLinearLayoutcontainer= (LinearLayout) findViewById(R.id.container);
generate.setOnClickListener(newView.OnClickListener() {
@OverridepublicvoidonClick(View v) {
intnumberOfControlsToGenerate=0;
try {
numberOfControlsToGenerate = Integer.parseInt(count.getText().toString().trim());
} catch (NumberFormatException e) {
Log.e(TAG, e.getMessage(), e);
}
if (numberOfControlsToGenerate > 0) {
if (container.getChildCount() > 0) {
container.removeAllViews();
}
for (intcounter=0; counter < numberOfControlsToGenerate; counter++) {
addEditText(container);
}
}
}
});
values.setOnClickListener(newView.OnClickListener() {
@OverridepublicvoidonClick(View v) {
String[] editTextValues = newString[container.getChildCount()];
StringBuildereditTextValuesBuilder=newStringBuilder();
for (intcounter=0; counter < container.getChildCount(); counter++) {
EditTextchild= (EditText) container.getChildAt(counter);
editTextValues[counter] = child.getText().toString().trim();
editTextValuesBuilder.append(editTextValues[counter]).append("\n");
}
output.setText(editTextValuesBuilder.toString());
}
});
}
privatevoidaddEditText(LinearLayout container) {
final LinearLayout.LayoutParamsparams=newLinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
EditTexteditTextToAdd=newEditText(this);
editTextToAdd.setLayoutParams(params);
container.addView(editTextToAdd);
}
}
activity_main.xml
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center_horizontal"android:orientation="vertical"android:padding="16dp"tools:context="${packageName}.${activityClass}" ><EditTextandroid:id="@+id/count"android:layout_width="match_parent"android:layout_height="wrap_content"android:imeOptions="actionDone"android:inputType="number"android:textSize="20sp" /><Buttonandroid:id="@+id/generate"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Go" /><Buttonandroid:id="@+id/values"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Get Values" /><TextViewandroid:id="@+id/output"android:layout_width="match_parent"android:layout_height="wrap_content" /><ScrollViewandroid:layout_width="match_parent"android:layout_height="match_parent" ><LinearLayoutandroid:id="@+id/container"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical" ></LinearLayout></ScrollView></LinearLayout>
Post a Comment for "Show Edittext On Condition"