I want to know how to link a button to edittext so that anytime a certain id is put on the edittext and a button is press, it send you to another page and give detail information about that I'd. I am a beginner so help me pls.
In the XML file, you need to have EditText and Button like the following,
<EditText
android:id="#+id/txt"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<Button
android:id="#+id/btn"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Submit" />
And your code should be like this.
public void onCreate(Bundle savedInstanceState) {
// Initialize edittext and button
EditText txt = (EditText) findViewById(R.id.txt);
Button btn = (Button) findViewById(R.id.btn);
// Set listener to the button
btn.setOnClickListener(new Button.OnClickListener() {
#Override
public void onClick(View v) {
String text = txt.getText().toString();
yourFunction(text);
}
});
}
private void yourFunction(String text) {
// Your search code goes here
}
Related
I have a problem with creating 2 activities for 1 button. I created a button and I managed to connect that button with one activity but I dont know how to add another activity to the same button.. What am I trying to do is that when we press on that button it will start playing animation (I managed to do that) but I also want it to send SMS to a specific number. I have code for that, but I dont know how to include / connect everything together.
Code from a button:
<Button
android:id="#+id/button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#android:color/transparent" />
Code from a imageview (animation):
<ImageView
android:id="#+id/imageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_gravity="center"
android:scaleType="centerInside"
android:src="#drawable/keers" />
Code from main activity, for animation:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
imageView = (ImageView) findViewById(R.id.imageView);
button = (Button) findViewById(R.id.button);
running = false;
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
if(!running){
((AnimationDrawable) imageView.getDrawable()).start();
running = true;}
}
}
);
}
}
Now what I want to add for the same button is this :
public void sendText(View paramView)
{
Toast.makeText(this, "SENT",Toast.LENGTH_SHORT).show();
SmsManager.getDefault().sendTextMessage("+3564245237",null,"1", null, null);
I'm not that experienced in programming, so it might be pretty easy for you guys.
Both actions seen to be fired by the same Button, so you may add both to the onClickListener
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
if(!running){
((AnimationDrawable) imageView.getDrawable()).start();
running = true;}
Toast.makeText(view.getContext(), "SENT",Toast.LENGTH_SHORT).show(); //Or YourActivity.this
SmsManager.getDefault().sendTextMessage("+3564245237",null,"1", null, null);
}
}
Hi friends can you please help me how can i make a button visable after another button is clicked
Try this:
buttonONE.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
buttonTWO.setVisibility(View.VISIBLE);
}
});
In layout xml:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/buttonTWO"
android:layout_gravity="center_horizontal"
android:visibility="gone"/>
Like this:
public class YourClass extends Activity{
Button button1;
Button button2;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the view from your xml
setContentView(R.layout.xml_layout_name);
// Locate the buttons in your xml
button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
//set listener on button1
button1.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
//make button2 visible when button1 is pressed
button2.setVisibility(View.VISIBLE);
}
});
}
}
In xml_layout_name:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/button1"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/button2"
android:visibility="gone"/>
</RelativeLayout>
I have a simple xml with a question and two buttons. When one of buttons is pushed i will compare if the id of the pushed button is equal to "Blanco" or "Negro".
The XML code:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="#+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="#string/pregunta" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="#+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="#string/Blanco"
android:onClick="respuesta"/>
<Button
android:id="#+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="#string/Negro"
android:onClick="respuesta"/>
</LinearLayout>
</LinearLayout>
This is de java code:
public class MainActivity extends ActionBarActivity {
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void respuesta(){
//The doubt.
//Here the if/else to compare ID with the button text
}
}
Don't do it like that. Create an onClickListener for each Button, so you know exactly which one is being pressed. For example:
public class MainActivity extends ActionBarActivity {
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1 = (Button)findViewById(R.id.button1);
Button button2 = (Button)findViewById(R.id.button2);
button1.setOnClickListener(new View.OnClickListener{
public void onClick(View v) {
// call code here, knowing that button1 was pressed
}
});
button2.setOnClickListener(new View.OnClickListener{
public void onClick(View v) {
// call code here, knowing that button2 was pressed
}
});
}
}
implement onClickListener into your Activity.
public class MainActivity extends ActionBarActivity implements OnClickListener
Declare the Button variables inside your class
Button btblanco, btnegro;
Implement the clickListener event on onCreate
btblanco = (Button) findViewById(R.id.button1);
btnegro = (Button) findViewById(R.id.button2);
btblanco.setOnClickListener(this);
btnegro.setOnClickListener(this);
And put this inside onClickListener method.
#Override
public void onClick(View v) {
switch(v.getId())
{
case R.id.button1:
Toast.makeText(getApplicationContext(), "Blanco", Toast.LENGTH_SHORT).show();
break;
case R.id.button2:
Toast.makeText(getApplicationContext(), "Negro", Toast.LENGTH_SHORT).show();
break;
}}
if you are interested in just knowing which button was clicked, then add a onclicklistener to the button objects. Google for it a bit and the samples you find will show you how to use a switch case structure to d actions based on which button was clicked.
In android,i want to get a string from user using EditText and on click of submit button the string need to be show on another page/pane.
here is my fragment.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<EditText android:id="#+id/msg"
android:hint="#string/entertheip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="#string/text"
/>
<Button android:id="#+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="#string/Button1"
/>
<TextView android:id="#+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="#string/thetext"
android:visibility="invisible"
/>
</LinearLayout>
and corresponding java class is this
public class MainActivity extends ActionBarActivity {
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_main);
Button bu = (Button)findViewById(R.id.button1);
bu.setOnClickListener(new View.OnClickListener() {
private TextView tv = (TextView)findViewById(R.id.tv);
#Override
public void onClick(View v) {
// to view the ip in another page
try{
EditText et = (EditText)findViewById(R.id.msg);
String t = et.getText().toString();
tv.setText(t);
}catch(NullPointerException e){
e.printStackTrace();
}
}
});
}
}
But i am getting the Edit Text and Button only, the text is not showing in another page. Kindly help in this.
place this inside onClick
tv.setVisibility(View.VISIBLE);
You will have to use an Intent to go to another activity, like
Intent i=new Intent(MainActivity.this, someClass.class);
startActivity(i);
save the string in app preference and use the preference tag in that class and set the string to some textview you want there ...
try below way:-
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_main);
Button bu = (Button)findViewById(R.id.button1);
TextView tv = (TextView)findViewById(R.id.tv);
EditText et = (EditText)findViewById(R.id.msg);
bu.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
// to view the ip in another page
try{
String t = et.getText().toString();
tv.setText(t);
}catch(NullPointerException e){
e.printStackTrace();
}
}
});
}
Remove this line from TextView tag of your XML File:-
android:visibility="invisible"
You can navigate between activities using Intent and also pass data with it
Using Intents to Create Flows
Simple way on your case is
On Button click
Intent i = new Intent(MainActivity.this, ActivityTwo.class);
i.putExtra("username", "foobar");
startActivity(i); // brings up the second activity
On Another Activity
// ActivityTwo.java (subactivity) can access any extras passed in
protected void onCreate(Bundle savedInstanceState) {
String username = getIntent().getStringExtra("username");
}
You have not added onClick to button: Fix that.
<Button android:id="#+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="#string/Button1"
android:onClick="onBtnClick"
/>
And you need not override onClick if you are not implementing onClickListener in activity.
public void onBtnClick(View v) {
// to view the ip in another page
try{
EditText et = (EditText)findViewById(R.id.msg);
String t = et.getText().toString();
tv.setText(t);
tv.setVisibility(View.VISIBLE); //as you have kept visibility invisible in xml
}catch(NullPointerException e){
e.printStackTrace();
}
}
Hope it helps.
I'm trying to make an android app, and as I am a total beginner, I am wondering if anyone could help me out with the code.
There will be three boxes to enter different numbers, and I want the app to divide the second value by the first, and then multiply it by the third. And then display the answer on screen.
And the app does have a purpose aha.
So like (b/a)*c
For taking inputs take 3 EditText and take one Button for get Result by Clicking on it.
Follow this
public class result extends Activity
{
private EditText edit1;
private EditText edit2;
private EditText edit3;
public void onCreate(Bundle savedInstanceState)
{
try
{
super.onCreate(savedInstanceState);
setContentView(R.layout.result);
edit1 = (EditText)findViewById(R.id.edit1);
edit2 = (EditText)findViewById(R.id.edit2);
edit3 = (EditText)findViewById(R.id.edit3);
Button click = (Button)findViewById(R.id.btn);
click.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
int a = Integer.parseInt(edit1.getText().toString());
int b = Integer.parseInt(edit2.getText().toString());
int c = Integer.parseInt(edit3.getText().toString());
double result = ((double) a/b)*c;
Toast.makeText(result.this, Double.toString(result),Toast.LENGTH_LONG).show();
}
});
}catch (Exception e) {
e.printStackTrace();
}
}
}
Result.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#fff"
>
<EditText
android:id="#+id/edit1"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:inputType="text"/>
<EditText
android:id="#+id/edit2"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:inputType="text"/>
<EditText
android:id="#+id/edit3"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:inputType="text"/>
<Button
android:id="#+id/btn"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:text="Click"/>
</LinearLayout>
Declare 3 EditTexts in your applications layout, as well as a button, and a TextView. Give them unique id's.
The following code will do what you want. It's very simple, so make sure you don't just copy and paste,and that you understand it. I always find it easier to learn from examples, which is why I'm giving one. I hope it helps.
public class MainActivity extends Activity {
//Declare textviews as fields, so they can be accessed throughout the activity.
EditText mEditText1;
EditText mEditText2;
EditText mEditText3;
TextView mTextView;
Button mButton;
#Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Bind the EditText views
mEditText1 = (EditText)findViewById(R.id.editText1);
mEditText2 = (EditText)findViewById(R.id.editText2);
mEditText3 = (EditText)findViewById(R.id.editText3);
mTextView = (TextView)findViewById(R.id.textView1);
mButton = (Button)findViewById(R.id.calculateButton);
mButton.setOnClickListener(new OnClickListener() {
#Override
public void onClick(View v) {
//When the button is clicked, call the calucate method.
calculate();
}
});
}
public void calculate(){
//get entered texts from the edittexts,and convert to integers.
Double value1 = Double.parseDouble(mEditText1.getText().toString());
Double value2 = Double.parseDouble(mEditText2.getText().toString());
Double value3 = Double.parseDouble(mEditText3.getText().toString());
//do the calculation
Double calculatedValue = (value2/value1)*value3;
//set the value to the textview, to display on screen.
mTextView.setText(calculatedValue.toString());
}
}
int answer=(Integer.parse(editTextB.getText()) /Integer.parse(editTextA.getText())*Integer.parse(editTextC.getText()