Cannot Resolve Symbol setOnClickListener & ";" & ")" expected - java

I am receiving the following error
Cannot Resolve Symbol setOnClickListener
on the Java code below. I am also receiving an error on
public void onClick(View v) {
between k & ( there is a ; expected and between w and v there is a ) & ; expected. I'm not entirely sure how I am receiving these errors, any help will be appreciated.
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
#Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
#Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
//Creating button references for the buttons corresponding to their IDs through findViewById
Button rB = (Button) findViewById(R.id.rButton);
Button lB = (Button) findViewById(R.id.lButton);
//Register click event with first button
rB.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
TextView txtView = (TextView) findViewById(R.id.textView);//Correspond the text view to its ID
txtView.setTextSize(14); //Change text size
}
});
//Register click event with second button
lB.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
TextView txtView = (TextView) findViewById(R.id.textView); //Correspond the text view to its ID
txtView.setTextSize(24); //Change text size
}
});
}
Below is my xml code;
<RelativeLayout xmlns: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:paddingBottom="16dp" tools:context=".MainActivity">
<TextView android:text="Please Type Here" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/textView" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/editText"
android:layout_below="#+id/textView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="30dp"
android:inputType="text"/>
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#FF0000FF"
android:layout_below="#+id/editText"
android:layout_marginTop="40dp"
android:id="#+id/view" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="LEFT"
android:id="#+id/lButton"
android:layout_alignTop="#+id/view"
android:layout_alignParentLeft="true"
android:layout_marginTop="5dp"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RIGHT"
android:id="#+id/rButton"
android:layout_alignTop="#+id/view"
android:layout_alignParentRight="true"
android:layout_marginTop="5dp"/>
</RelativeLayout>

You need to put your code in a method body such as onCreate(). It's not syntactically valid to have it in the class body.
Move the code that calls setOnClickListener() to onCreate() after setContentView(). You can have the variable declarations in the class level (but initialize them with findViewById() only after setContentView().)

Move the following code:
//Creating button references for the buttons corresponding to their IDs through findViewById
Button rB = (Button) findViewById(R.id.rButton);
Button lB = (Button) findViewById(R.id.lButton);
//Register click event with first button
rB.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
TextView txtView = (TextView) findViewById(R.id.textView);//Correspond the text view to its ID
txtView.setTextSize(14); //Change text size
}
});
//Register click event with second button
lB.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
TextView txtView = (TextView) findViewById(R.id.textView); //Correspond the text view to its ID
txtView.setTextSize(24); //Change text size
}
});
inside the onCreate method, the reason is because those statements must be inside a method, not any method, but one where the views are valid, (like the onCreate)

Related

TEXTVIEW substantiation location

I am trying to make an android code that provide a different work for each button.
so when the user press on Button1 a Textview field provides " you pressed on Button1"
my question is about the correct place that I can instantiate the Textview ONLY ONCE as the only working place is inside the Button1 Function.
Java Code for a single button:
public void Button1(View view) {
final TextView textView=(TextView)findViewById(R.id.textView2);
textView.setText("You clicked the button 1");
}
total java code
public class MainActivity extends AppCompatActivity {
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
#Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
#Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public void Button1(View view) {
final TextView textView=(TextView)findViewById(R.id.textView2);
textView.setText("You clicked the button 1");
}
public void Button2(View view) {
final TextView textView=(TextView)findViewById(R.id.textView2);
textView.setText("You clicked the button 2");
}
public void Button3(View view) {
final TextView textView=(TextView)findViewById(R.id.textView2);
textView.setText("You clicked the button 3");
}
public void Button4(View view) {
final TextView textView=(TextView)findViewById(R.id.textView2);
textView.setText("You clicked the button 4");
}
public void Button5(View view) {
final TextView textView=(TextView)findViewById(R.id.textView2);
textView.setText("You clicked the button 5");
}
public void Button6(View view) {
final TextView textView=(TextView)findViewById(R.id.textView2);
textView.setText("You clicked the button 6");
}
}
Total XML Code
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="#+id/RelativeLayoutID"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="#dimen/activity_vertical_margin"
android:paddingLeft="#dimen/activity_horizontal_margin"
android:paddingRight="#dimen/activity_horizontal_margin"
android:paddingTop="#dimen/activity_vertical_margin"
app:layout_behavior="#string/appbar_scrolling_view_behavior"
tools:context="com.example.sherifsaleh.xmllayout.MainActivity"
tools:showIn="#layout/activity_main"
>
<Button
android:id="#+id/button3"
android:onClick="Button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="3"
android:layout_above="#+id/button6"
android:layout_alignLeft="#+id/button6"
android:layout_alignStart="#+id/button6" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="Button6"
android:text="6"
android:id="#+id/button6"
android:layout_below="#+id/button2"
android:layout_alignLeft="#+id/button9"
android:layout_alignStart="#+id/button9" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="9"
android:id="#+id/button9"
android:onClick="Button9"
android:layout_alignTop="#+id/button8"
android:layout_toRightOf="#+id/button8"
android:layout_toEndOf="#+id/button8" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="8"
android:id="#+id/button8"
android:layout_below="#+id/button5"
android:layout_toRightOf="#+id/button4"
android:layout_toEndOf="#+id/button4"
android:onClick="Button8"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2"
android:onClick="Button2"
android:id="#+id/button2"
android:layout_above="#+id/button5"
android:layout_toRightOf="#+id/button1"
android:layout_toEndOf="#+id/button1" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="Button5"
android:text="5"
android:id="#+id/button5"
android:layout_below="#+id/button1"
android:layout_toRightOf="#+id/button1"
android:layout_toEndOf="#+id/button1" />
<Button
android:id="#+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1"
android:onClick="Button1"
android:layout_above="#+id/button4"
android:layout_alignLeft="#+id/button4"
android:layout_alignStart="#+id/button4" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="4"
android:id="#+id/button4"
android:layout_above="#+id/button7"
android:layout_alignLeft="#+id/button7"
android:layout_alignStart="#+id/button7" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="7"
android:id="#+id/button7"
android:layout_alignParentBottom="true"
android:layout_alignLeft="#+id/textView2"
android:layout_alignStart="#+id/textView2"
android:layout_marginBottom="90dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textIsSelectable="true"
android:text="New Text"
android:id="#+id/textView2"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="80dp"
android:textSize="50dp"/>
</RelativeLayout>
Try like this.
public class MainActivity extends AppCompatActivity {
private TextView textView;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView)findViewById(R.id.textView2);
....
}
And your Button click method as
public void Button1(View view) {
textView.setText("You clicked the button 1");
}
1)First try to initialize your references in onCreate which loads once.So references to your views will initialize only once
eg-
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnOne = (Button) findViewById(R.id.btnOne);
btnTwo = (Button) findViewById(R.id.btnTwo);
textView = (TextView) findViewById(R.id.textView);
btnOne.setOnClickListener(this);
btnTwo.setOnClickListener(this);
}
2)Instead of calling seperate methods for each button apply click listeners on buttons as above mentioned
and implement View.OnClickListener and then
3)Override method
#Override
public void onClick(View v) {
Button b = (Button)v;
String buttonText = b.getText().toString();
textView.setText("You clicked on " + buttonText);
}
So the code in onClick is repeating in your case instead of writing each time seperately write it once and get text or you can set Tag of button and get it(in case when you want to set another value to textview instead of button text) and set to textview as i did in onClick.
It will reduce your efforts and increase your code reusability and redability too..!!!!!
Not super sure what your question is. If your asking if it's acceptable to do your findViewById in the button listener, it's acceptable but not optional. Every time you press the button the code runs. It's better to do it once in onCreate
Simply declare it at the start of your Activity
public class MainActivity extends AppCompatActivity {
private TextView textView2;
.....
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_layout);
textView2 = (TextView) findViewById(R.id.textView2);}
.....
public void Button6(View view) {
textView2.setText("bla");
}
Is that what you asked for ?

How to hide next button and show when radio group button is selected

How to I hide the next button and will only show when the user choose a radio group button
I have this XML code
<?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">
<RadioGroup
android:id="#+id/radioSex"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/assembly"
android:checked="false"
/>
<RadioButton
android:id="#+id/csharp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false"/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/java"
android:checked="false" />
<Button
android:id="#+id/btnDisplay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NEXT"
android:onClick="OnClick"
/>
</RadioGroup>
</LinearLayout>
and this class code
package com.example.quiz;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
/**
* Created by leste on 3/5/2016.
*/
public class CS_Category extends Activity {
private RadioGroup radioSexGroup;
private RadioButton radioSexButton;
private Button btnDisplay;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.cs_category);
addListenerOnButton();
}
public void addListenerOnButton() {
radioSexGroup = (RadioGroup) findViewById(R.id.radioSex);
btnDisplay = (Button) findViewById(R.id.btnDisplay);
btnDisplay.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
// get selected radio button from radioGroup
int selectedId = radioSexGroup.getCheckedRadioButtonId();
radioSexButton = (RadioButton) findViewById(selectedId);
if (radioSexButton.getId() == R.id.assembly) {
Intent i = new Intent(CS_Category.this, CS_Assembly.class);
startActivity(i);
} else {
if (radioSexButton.getId() == R.id.csharp) {
Intent i = new Intent(CS_Category.this, CS_Csharp.class);
startActivity(i);
} else {
if (radioSexButton.getId() == R.id.java) {
Intent i = new Intent(CS_Category.this, CS_Java.class);
startActivity(i);
}
}
Toast.makeText(CS_Category.this,
radioSexButton.getText(), Toast.LENGTH_SHORT).show();
}
}
});
}
}
What should I do to hide the next button and show only if there is a selected radio button
In your button xml you should use:
android:visibility="gone"
In java you should use:
btnDisplay.setVisibility(View.VISIBLE);
First of all I would take the button out of the radio group and just have it be below it. Then in my java code I would have this function:
public void onRadioButtonClicked(View view) {
// Is the button now checked?
boolean checked = ((RadioButton) view).isChecked();
// Check which radio button was clicked
switch(view.getId()) {
case R.id.assembly:
if (checked)
make_button_visible();
break;
case R.id.csharp:
if (checked)
make_button_visible();
break;
}
}
Make sure that each radio button has onClick="onRadioButtonClicked" set.
Then have a function called make_button_visible() that has these lines:
Button mButton=(Button)findViewById(R.id.btnDisplay);
mButton.setVisibility(View.VISIBLE);//This will make it visible
add below code in your onCreate method
addListenerOnButton();
btnDisplay.setVisibility(View.INVISIBLE);
radioSexGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
#Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
if (btnDisplay.getVisibility() == View.INVISIBLE)
btnDisplay.setVisibility(View.VISIBLE);
}
});

android radiobutton button accept

I have a problem with button Set Color. Set Color is to activate the selected RadioButton. For example, selecting the first radiobutton and when you click "Set Color" is the background color change to red. Here is my Android Studio codes.
UPDATE
My app working process now:
When I click for example on first RadioButton my textview background color change automatically. Its skipping my "Set Color" button.
My intended app working.
When I click for example on first RadioButton and after that I accept my choose clicking "Set Color" button my textview background color change.
XML file
<LinearLayout xmlns: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:layout_centerHorizontal="true"
android:orientation="vertical">
<RadioGroup
android:id="#+id/radioGroup"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:checkedButton="#+id/czerwonyguzik"
android:gravity="center_horizontal"
android:orientation="horizontal">
<RadioButton
android:id="#+id/czerwonyguzik"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#color/Czerwony"
android:onClick="onRadioClicked" />
<RadioButton
android:id="#+id/bialyguzik"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#color/White"
android:onClick="onRadioClicked" />
<RadioButton
android:id="#+id/niebieskiguzik"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#color/Niebieski"
android:onClick="onRadioClicked" />
</RadioGroup>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:orientation="horizontal">
<Button
android:id="#+id/setcolor"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:text="Set Color" />
<Button
android:id="#+id/cancel"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:onClick="anulacjaopcji"
android:text="Anuluj" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="#+id/textwju"
android:layout_width="match_parent"
android:layout_height="101dp"
android:background="#color/red"
android:textColor="#color/White" />
</LinearLayout>
</LinearLayout>
JAVA file
public class LinearLayout extends ActionBarActivity {
RadioGroup rg;
TextView textView;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_linear_layout);
TextView textView = (TextView) findViewById(R.id.textwju);
rg = (RadioGroup) findViewById(R.id.radioGroup);
}
public void onRadioClicked(View view) {
textView = (TextView) findViewById(R.id.textwju);
// czy guzik jest wcisniety
boolean wcisniety = ((RadioButton) view).isChecked();
//sprawdzenie ktory guzik jest wcisniety
switch (view.getId()) {
case R.id.czerwonyguzik:
if (wcisniety)
textView.setBackgroundColor(getResources().getColor(R.color.Czerwony));
break;
case R.id.bialyguzik:
if (wcisniety)
textView.setBackgroundColor(getResources().getColor(R.color.White));
break;
case R.id.niebieskiguzik:
if (wcisniety)
textView.setBackgroundColor(getResources().getColor(R.color.Niebieski));
break;
}
}
public void anulacjaopcji(View view) {
rg.check(R.id.czerwonyguzik);
textView.setBackgroundColor(getResources().getColor(R.color.Czerwony));
}
#Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_radio_button, menu);
return true;
}
#Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Try the following
RadioButton radioButton1, radioButton2, radioButton3;
Button setColorButton, cancelButton;
TextView textwju;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.radiobutton_example);
radioButton1 = (RadioButton) findViewById(R.id.czerwonyguzik);
radioButton2 = (RadioButton) findViewById(R.id.bialyguzik);
radioButton3 = (RadioButton) findViewById(R.id.niebieskiguzik);
setColorButton = (Button) findViewById(R.id.setcolor);
cancelButton = (Button) findViewById(R.id.cancel);
textwju = (TextView) findViewById(R.id.textwju);
setColorButton.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
if(radioButton1.isChecked()) {
textwju.setBackgroundColor(getResources().getColor(R.color.blue));
} else if(radioButton2.isChecked()) {
textwju.setBackgroundColor(getResources().getColor(R.color.white));
} else if(radioButton3.isChecked()) {
textwju.setBackgroundColor(getResources().getColor(R.color.red));
}
}
});
cancelButton.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
radioButton1.setChecked(true);
}
});
}
And don't forget to remove android:onClick="onRadioClicked" from the radio buttons in the xml.
Create field for saving textview color in, and just save in it new value on onRadioClicked. After you click your "Set Color" call your textView.setBackgroundColor(savedColor).
you can get the option selected by
int radioButtonID = group.getCheckedRadioButtonId();
View radioButton = group.findViewById(radioButtonID);
int radioId = group.indexOfChild(radioButton);
String optionText =
(RadioButton)group.getChildAt(radioId)).getText().toString();
now you can do what ever you want
hope this helps

Cannot change TextView between two activities?

I'm attempting to change a TextView between two activities. The problem is, when I change the text in the other activity from main activity, it works fine, the screen goes to the other activity and the text has been changed. However I have another button which takes me to the other activity from Main, but the newly updated text has disappeared when I press it. Any help?
MyActivity.java
public class MyActivity extends Activity {
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
final EditText et = (EditText) findViewById(R.id.editText1);
Button b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View view) {
Intent intent = new Intent(MyActivity.this, Second.class);
intent.putExtra("thetext", et.getText().toString());
startActivity(intent);
}
});
}
#Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.my, menu);
return true;
}
#Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public void onClickGoToActivity(View view) {
setContentView(R.layout.second);
}
}
Second.java
public class Second extends Activity{
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
TextView tv = (TextView) findViewById(R.id.textView1);
tv.setText(getIntent().getExtras().getString("thetext"));
}
}
activity_my.xml
<RelativeLayout xmlns: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:paddingLeft="#dimen/activity_horizontal_margin"
android:paddingRight="#dimen/activity_horizontal_margin"
android:paddingTop="#dimen/activity_vertical_margin"
android:paddingBottom="#dimen/activity_vertical_margin"
tools:context=".MyActivity">
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/editText1"
android:layout_centerHorizontal="true"
android:hint="Change me"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/button1"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:text="Add text in other activity"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/go_to_activity_button"
android:text="Go to activity"
android:layout_centerHorizontal="true"
android:layout_marginTop="200dp"
android:onClick="onClickGoToActivity"/>
</RelativeLayout>
second.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/textView1"
android:textSize="30sp"/>
</LinearLayout>
AndroidManifest.xml
Second class activity:
I presume the problem lies here:
public void onClickGoToActivity(View view) {
setContentView(R.layout.second);
}
where the newly changed TextView is being reset back to the original layout (where the TextView is empty with no text). I'm not sure how to fix this as I'm new to Android.
Thank you.
changing content view of activity is a bad idea to start another activity. Simply you just do the same thing which is
public void onClickGoToActivity(View view) {
Intent intent = new Intent(MyActivity.this, Second.class);
intent.putExtra("thetext", et.getText().toString());
startActivity(intent);
}

How to add a reset button to clear numbers on Edittext field

I want to add a button to clear the numbers on textfield by tapping on the button.
(Reset my EditText back to an empty "space" after a button has pressed that would have completed an activity with input from the EditText field.)
Cheers! Thanks!
ActivityMain XML file!
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#drawable/back"
android:orientation="vertical"
tools:context="com.miuapps.unitconverter.Centimetres_Metres" >
<TextView
android:id="#+id/textView1" //first textview
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Enter a Value(cm) :"
android:layout_gravity="center"
android:gravity="center"
android:textSize="30dp"/>
<EditText
android:id="#+id/editText1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="number" />
<Button
android:id="#+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Convert" />
<TextView
android:id="#+id/tvDisplay1" //output textview
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="In Metres: 0"
android:textSize="30dp" />
</LinearLayout>
double counter, counter2 = 100;
double x;
Button conv;
TextView dis1, dis2;
EditText ent1;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
counter = 0;
conv = (Button)findViewById(R.id.button1);
dis1 = (TextView)findViewById(R.id.tvDisplay1);
//dis2 = (TextView)findViewById(R.id.tvDisplay2);
ent1 = (EditText)findViewById(R.id.editText1);
conv.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
// TODO Auto-generated method stub
x = new Integer(ent1.getText().toString());
counter = x/100;
//counter2++;
dis1.setText("In Metres: " +counter);
//dis2.setText("In Centimetres: " +counter2);
}
});
}
#Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
#Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
How about this:
ent1.setText("");
just put it at the end of your onClick Method
Edit:
conv.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
// here you get the text from your editText
x = new Integer(ent1.getText().toString());
// do something with the text
counter = x/100;
// set result in another TextView
dis1.setText("In Metres: " +counter);
// work is done, so the editText can be cleared
ent1.setText("");
}
});
Edit 2 (reset button):
resetButton.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
// reset only by another button
ent1.setText("");
}
});
Simply add a button in your layout.
<Button
android:id="#+id/buttonReset"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Reset" />
Find that button in your activity:
Button mButtonReset = (Button) findViewById(R.id.buttonReset);
mButtonReset.setOnClickListener(new OnClickListener(){
#Override
public void onClick(View view){
ent1.setText("");
}
});
First Create Design,
Activity_main.xml like below,
<EditText
android:id="#+id/txt_1"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:ems="10"
android:hint="Enter Name"
android:inputType="textPersonName"
android:minHeight="48dp" />
<Button
android:id="#+id/btn_ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:text="Button" />
<Button
android:id="#+id/btn_cln"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="Clear" />
**Then go to MainActivity.java edit code like below, **
**
public class MainActivity extends AppCompatActivity {
Button button,button2;
EditText editText;
String name;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = findViewById(R.id.btn_ok);
editText = findViewById(R.id.txt_1);
button2 = findViewById(R.id.btn_cln);
//create text add button
button.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
name = editText.getText().toString();
}
});
//clean,reset text button
button2.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
editText.setText("");
}
});
}
}
**

Categories

Resources