ragu
ragu

Reputation: 663

How to get EditText value and display it on screen through TextView?

I want to get the user input for the EditText view and display it on the screen through TextView when the Button is clicked. I also, want to know what modifications can be done on the string.xml file to do this.

Upvotes: 56

Views: 200055

Answers (12)

Yogendra
Yogendra

Reputation: 5288

In ComposableUI, use mutablestate to read value from input boxes.

class FillFormActivity : ComponentActivity() {

var nameValue = mutableStateOf("")
var emailValue = mutableStateOf("")
var passwordValue = mutableStateOf("")

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContent {
        ComposableTestTheme {
            // A surface container using the 'background' color from the theme
            Surface(
                modifier = Modifier.fillMaxSize(),
                color = MaterialTheme.colorScheme.background
            ) {


                Column(modifier = Modifier.fillMaxSize()) {

                    // add top bar
                    TopBarApp(context = baseContext, "Fill Form") {
                        // to do
                    }

                    Column(
                        modifier = Modifier
                            .fillMaxSize()
                            .fillMaxWidth(),
                        horizontalAlignment = Alignment.CenterHorizontally
                    ) {
                        OutlinedTextField("Name", nameValue)
                        OutlinedTextField("Email", emailValue)
                        OutlinedTextFieldPassword("Password")
                        SubmitButton(text = "Submit") {
                            submitForm()
                        }
                    }
                }
            }
        }
    }
}


@Composable
fun OutlinedTextField(placeHolderText: String, valueHolder: MutableState<String>) {
    Spacer(modifier = Modifier.padding(10.dp))
    androidx.compose.material3.OutlinedTextField(
        value = valueHolder.value,
        onValueChange = { valueHolder.value = it },
        label = { Text(placeHolderText) }
    )
}


@Composable
fun OutlinedTextFieldPassword(placeHolderText: String) {
    Spacer(modifier = Modifier.padding(10.dp))
    androidx.compose.material3.OutlinedTextField(
        value = passwordValue.value,
        onValueChange = { passwordValue.value = it },
        label = { Text(placeHolderText) },
        visualTransformation = PasswordVisualTransformation(),
        keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password)
    )
}


@Composable
fun SubmitButton(text: String, onClick: () -> Unit) {
    Spacer(modifier = Modifier.padding(10.dp))
    Button(
        onClick = onClick,
        colors = ButtonDefaults.buttonColors(),
        shape = RoundedCornerShape(5.dp)
    )
    {
        Text(text = text, color = Color.White)
    }

}


private fun submitForm() {
    val msg = "Value : name : ${nameValue.value} \nemail : ${emailValue.value},\n Pass: ${passwordValue.value}"
    Toast.makeText(this, msg, Toast.LENGTH_LONG)
        .show()
}

}

This code is working and here is output.

enter image description here

Happy codding.

Upvotes: 0

Tanmay Agarwal
Tanmay Agarwal

Reputation: 516

Easiest way to get text from the user:

EditText Variable1 = findViewById(R.id.enter_name);
String Variable2 = Variable1.getText().toString();

Upvotes: 2

Uzair Ahmed
Uzair Ahmed

Reputation: 33

First get the value from edit text in a String variable

String value = edttxt.getText().toString();

Then set that value to textView

txtview.setText(value);

Where edttxt refers to edit text field in XML file and txtview refers to textfield in XML file to show the value

Upvotes: 0

Vinay Rana
Vinay Rana

Reputation: 1

Try this->

EditText text = (EditText) findViewById(R.id.text_input);

Editable name = text.getText();

Editable is the return data type of getText() method it will handle both string and integer values

Upvotes: 0

mehdi musavi
mehdi musavi

Reputation: 418

Use the following code when clicked on the button :

 String value = edittext.getText().toString().trim(); //get text from editText 
 textView.setText(value); //setText in a textview

Hope to be useful to you.

Upvotes: 1

P.N.R
P.N.R

Reputation: 71

EditText ein=(EditText)findViewById(R.id.edittext1);
TextView t=new TextView(this);
t.setText("Your Text is="+ein.getText());
setContentView(t);

Upvotes: 7

Quick learner
Quick learner

Reputation: 709

First get the text from edit text view

edittext.getText().toString()

and Store the obtained text in a string, say value.

value = edittext.getText().toString()

Then set value as the text for textview.

textview.setText(value)

Upvotes: 4

chainBIGBoy
chainBIGBoy

Reputation: 31

yesButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View arg0) {
        eiteText=(EditText)findViewById(R.id.nameET);
        String result=eiteText.getText().toString();
        Log.d("TAG",result);
    }
});

Upvotes: 3

Galaxy S2
Galaxy S2

Reputation: 438

I'm just beginner to help you for getting edittext value to textview. Try out this code -

EditText edit = (EditText)findViewById(R.id.editext1);
TextView tview = (TextView)findViewById(R.id.textview1);
String result = edit.getText().toString();
tview.setText(result);

This will get the text which is in EditText Hope this helps you.

Upvotes: 20

Bamadeva
Bamadeva

Reputation: 51

bb.setOnClickListener(
    new View.OnClickListener()
    {
        public void onClick(View view)
        {
            String s1=tt.getText().toString();
            tv.setText(s1);
        }
    }
);

Upvotes: 5

Thrawn80
Thrawn80

Reputation: 351

in "String.xml" you can notice any String or value you want to use, here are two examples:

<string name="app_name">My Calculator App
    </string>
<color name="color_menu_home">#ffcccccc</color>

Used for the layout.xml: android:text="@string/app_name"

The advantage: you can use them as often you want, you only need to link them in your Layout-xml, and you can change the String-Content easily in the strings.xml, without searching in your source-code for the right position. Important for changing language, you only need to replace the strings.xml - file

Upvotes: 1

st0le
st0le

Reputation: 33575

I didn't get the second question, maybe you can elaborate...but for your first query.

String content = edtEditText.getText().toString(); //gets you the contents of edit text
tvTextView.setText(content); //displays it in a textview..

Upvotes: 108

Related Questions