android radiobutton button accept - java

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

Related

Send certain value to the next activity according to radio buttons

The problem that I have faced:
The Female radiobutton checked can show the result in another activity successfully, but the Male radiobutton checked cannot show the result in another activity.
MainActivity17.java
public class MainActivity17 extends AppCompatActivity {
RadioButton male, female;
Double maleAmount;
Double femaleAmount;
String textview;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main17);
}
public void onRadioButtonClicked(final View view) {
final boolean checked = ((RadioButton) view).isChecked();
final EditText editTextUser = findViewById(R.id.editTextUser);
final TextView textViewOutput = findViewById(R.id.textViewOutput);
male = findViewById(R.id.ButtonMale);
female = findViewById(R.id.ButtonFemale);
Button btn = findViewById(R.id.btnNext);
btn.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
NumberFormat nm = NumberFormat.getNumberInstance();
final Double userInput = Double.parseDouble(editTextUser.getText().toString());
switch (view.getId()) {
case R.id.ButtonMale:
if (checked)
maleAmount = (userInput * 40);
textViewOutput.setText(nm.format(maleAmount));
break;
case R.id.ButtonFemale:
if (checked)
femaleAmount = (userInput * 40 * 2);
textViewOutput.setText(nm.format(femaleAmount));
break;
}
Intent i = new Intent(MainActivity17.this, MainActivity18.class);
textview = textViewOutput.getText().toString();
i.putExtra("String", textview);
startActivity(i);
finish();
}
});
}
}
main_activity17.xml
<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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity17">
<EditText
android:id="#+id/editTextUser"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="6"
android:hint="Enter Amount"
android:inputType="numberDecimal" />
<RadioGroup
android:id="#+id/radioGroup"
android:layout_width="match_parent"
android:layout_height="60sp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="#+id/editTextUser"
android:layout_marginTop="20dp">
<RadioButton
android:id="#+id/ButtonMale"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:checked="true"
android:onClick="onRadioButtonClicked"
android:text="Male" />
<RadioButton
android:id="#+id/ButtonFemale"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="#+id/radioGroup"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_weight="1"
android:onClick="onRadioButtonClicked"
android:text="Female" />
</RadioGroup>
<Button
android:id="#+id/btnNext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginBottom="16dp"
android:layout_marginLeft="43dp"
android:layout_marginStart="43dp"
android:text="Next" />
<TextView
android:id="#+id/textViewOutput"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="#+id/btnNext"
android:textSize="30sp" />
</RelativeLayout>
MainActivity18.java - I want to show the result in this activity
public class MainActivity18 extends AppCompatActivity {
TextView textView;
String valFromAct1;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main18);
textView = findViewById(R.id.textView18);
valFromAct1 = getIntent().getExtras().getString("String");
textView.setText(valFromAct1);
}
}
main_activity18.xml
<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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity18">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/textView18"
android:text="this is activity 2"
android:layout_centerHorizontal="true"
android:textSize="30dp"/>
</RelativeLayout>
First of all, I think you need some modification in the first activity.
you should not bind your views in the onclick method and it is not a good idea to add set the onClick method in the onRadioButton Click. instead, use disable attribute of the button.
MainActivity17.java
public class MainActivity17 extends AppCompatActivity {
RadioButton male, female;
Double maleAmount;
Double femaleAmount;
String textview;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main17);
final EditText editTextUser = findViewById(R.id.editTextUser);
final TextView textViewOutput = findViewById(R.id.textViewOutput);
male = findViewById(R.id.ButtonMale);
female = findViewById(R.id.ButtonFemale);
Button btn = findViewById(R.id.btnNext);
btn.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
NumberFormat nm = NumberFormat.getNumberInstance();
final Double userInput = Double.parseDouble(editTextUser.getText().toString());
switch (view.getId()) {
case R.id.ButtonMale:
if (checked)
maleAmount = (userInput * 40);
textViewOutput.setText(nm.format(maleAmount));
break;
case R.id.ButtonFemale:
if (checked)
femaleAmount = (userInput * 40 * 2);
textViewOutput.setText(nm.format(femaleAmount));
break;
}
Intent i = new Intent(MainActivity17.this, MainActivity18.class);
textview = textViewOutput.getText().toString();
i.putExtra("String", textview);
startActivity(i);
finish();
}
});
}
public void onRadioButtonClicked(final View view) {
final boolean checked = ((RadioButton) view).isChecked();
}
}
But if you want to use multiple radio buttons you can use the below method for notifying the selected item:
// Add the Listener to the RadioGroup
radioGroup.setOnCheckedChangeListener(
new RadioGroup
.OnCheckedChangeListener() {
#Override
// The flow will come here when
// any of the radio buttons in the radioGroup
// has been clicked
// Check which radio button has been clicked
public void onCheckedChanged(RadioGroup group,
int checkedId)
{
// Get the selected Radio Button
switch (checkedId) {
case R.id.ButtonMale:
maleAmount = (userInput * 40);
textViewOutput.setText(nm.format(maleAmount));
break;
case R.id.ButtonFemale:
femaleAmount = (userInput * 40 * 2);
textViewOutput.setText(nm.format(femaleAmount));
break;
}
}
});

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 ?

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

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)

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("");
}
});
}
}
**

Text wont show on textbox (radiobutton)

When I click on a radio button, I want its value to show on a textbox.I don't know what wrong with my code, there are no errors, its just that it won't show when I tick on the radio button
This is my class.
public class ConRadioSamp extends ActionBarActivity {
EditText txtans;
RadioButton RD1;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_con_radio_samp);
}
public void ChkCommand(View v)
{
txtans = (EditText)findViewById(R.id.txtcon1);
if(v.getId()==R.id.chk1 && ((RadioButton)v).isChecked())
{
((RadioButton) findViewById(R.id.radio2)).setChecked(false);
((RadioButton) findViewById(R.id.radio1)).setChecked(false);
RD1 = (RadioButton) findViewById(R.id.radio0);
}
else if(v.getId()==R.id.chk2 && ((RadioButton)v).isChecked())
{
((RadioButton) findViewById(R.id.radio0)).setChecked(false);
((RadioButton) findViewById(R.id.radio2)).setChecked(false);
RD1 = (RadioButton) findViewById(R.id.radio1);
}
else if(v.getId()==R.id.chk3 && ((RadioButton)v).isChecked())
{
((RadioButton) findViewById(R.id.radio0)).setChecked(false);
((RadioButton) findViewById(R.id.radio1)).setChecked(false);
RD1 = (RadioButton) findViewById(R.id.radio2);
}
String value = RD1.getText().toString();
txtans.setText(value);
}
public void CloseConF(View v)
{
Intent intent = new Intent(this, SampComponents.class);
startActivity(intent);
finish();
}
#Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.con_radio_samp, 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);
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
#Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.activity_con_radio_samp,
container, false);
return rootView;
}
}
}
You must use RadioGroup. For that take one RadiGroup in your xml file and add RadioButton in it how many you want.
RadioGroup rg;
After that in your java file just use this way
rg = (RadioGroup) findViewById(R.id.rgroup);
Now in your ChkCommand() method set this way
RadioButton rd1 = (RadioButton) findViewById(rg
.getCheckedRadioButtonId());
String radivalue = rd1.getText().toString();
Now set this text to your EditText.
txtans.setText(radivalue);
Try below code:
Its your xml with radio group.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
style="?background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="horizontal"
android:padding="10dp" >
<RadioButton
android:id="#+id/btnContact"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true" />
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1" />
<RadioButton
android:id="#+id/btnDescription"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1" />
<RadioButton
android:id="#+id/btnShare"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</RadioGroup>
</LinearLayout>

Categories

Resources