0
votes

I work simple android app for sending sms. I have 2 activities. One is main for sending 2 different messages with 2 different content but messages send to same number. On secund activity i have 3 fields: one is for input number to send messages, and other two are for message content. When I click save button app save user input and go back to main activity. And here start my problem. How can i send users input for number to send messages and messages content to main activity to send sms with saved user input? I am totally beginner with android developing so please help! Here is my MainActivity.java:

package com.example.davor.light;

import android.content.Intent; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.telephony.SmsManager; import android.telephony.SmsMessage; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast;

public class MainActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    // GUMBI INFORMACIJE
    Button ukljuci = (Button) findViewById(R.id.ukljuci);
    Button iskljuci = (Button) findViewById(R.id.iskljuci);
    Button postavke = (Button) findViewById(R.id.postavke);
    final ImageView slika = (ImageView) findViewById(R.id.slika);

    // INFORMACIJA O PORUCI
    final String broj = "097";
    final String ukljuciPoruka = "Uključi";
    final String iskljuciPoruka = "Isključi";



    // KLIK NA GUMB ISKLJUČI
    iskljuci.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            try {
                SmsManager smsManager = SmsManager.getDefault();
                smsManager.sendTextMessage(broj, null, iskljuciPoruka, null, null);
                Toast.makeText(getApplicationContext(), "Isključeno! poslano na broj " + broj, Toast.LENGTH_LONG).show();
                slika.setImageResource(R.drawable.off);
            } catch (Exception e) {
                Toast.makeText(getApplicationContext(),"Nemoguće isključiti!",Toast.LENGTH_LONG).show();
            }
        }
    });

    postavke.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Intent PostavkeActivity = new Intent(MainActivity.this,
                    Postavke.class);
            startActivity(PostavkeActivity);
        }
    });
}

@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);
} }

And here is code for my second activity from witch I want to pull users input to MainActivity:

package com.example.davor.light;

import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.preference.PreferenceManager; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast;

public class Postavke extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_postavke);
    gumbZaPovratak();

    SharedPreferences loadSettings = PreferenceManager.getDefaultSharedPreferences(this);
    String ucitajBroj = loadSettings.getString("spremiBroj", "");
    String ucitajUkljuci = loadSettings.getString("spremiUkljuci", "");
    String ucitajIskljuci = loadSettings.getString("spremiIskljuci", "");


    final EditText postavkeBroj = (EditText) findViewById(R.id.postavkeBroj);
    postavkeBroj.setText(ucitajBroj);
    final EditText postavkeUkljuci = (EditText) findViewById(R.id.postavkeUkljuci);
    postavkeUkljuci.setText(ucitajUkljuci);
    final EditText  postavkeIskljuci = (EditText) findViewById(R.id.postavkeIskljuci);
    postavkeIskljuci.setText(ucitajIskljuci);

    Button spremi = (Button) findViewById(R.id.postavkeSpremi);
    spremi.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v){
            spremiPostavke("spremiBroj", postavkeBroj.getText().toString());
            spremiPostavke("spremiUkljuci", postavkeUkljuci.getText().toString());
            spremiPostavke("spremiIskljuci", postavkeIskljuci.getText().toString());
            Toast.makeText(getApplicationContext(), "Spremljeno", Toast.LENGTH_LONG).show();
            finish();
        }
    });

}

private void postavkeBroj() {
    EditText postavkeBroj = (EditText) findViewById(R.id.postavkeBroj);
}

private void spremiPostavke (String ključ, String vrijednost) {
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putString(ključ, vrijednost);
    editor.commit();
}

private void gumbZaPovratak(){
    Button nazad = (Button) findViewById(R.id.nazad);
    nazad.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            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.menu_postavke, 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);
} }
4

4 Answers

0
votes

You can use startActivityForResult()

You can refer this link: http://hmkcode.com/android-startactivityforresult/

0
votes

In Activity1

Intent myIntent = new Intent(this,Activity2.class);
    myIntent.putExtra("var", variable_to_pass);
    startActivity(myIntent);

In Activity2

Bundle extras = getIntent().getExtras();
    if (extras != null) {
        intentExtra = extras.getString("var"); // retrieving variable
    }
0
votes

You can add data to an intent like this :

String messageContent = (EditText) findViewById(yourMessageContentId).getText().toString(); String messageNumber = (EditText) findViewById(yourMessageNumberId).getText().toString(); intent.putExtra("com.example.davor.light.MESSAGE_CONTENT", messageContent); intent.putExtra("com.example.davor.light.MESSAGE_NUMBER", messageNumber);

And then get it on the MainActivity :

Intent intent = getIntent(); String messageNumber = intent.getStringExtra("com.example.davor.light.MESSAGE_NUMBER"); String messageContent = intent.getStringExtra("com.example.davor.light.MESSAGE_CONTENT");

0
votes

you can send information from one activity to other activity like bellow

    Intent postavkeActivity = new Intent(MainActivity.this,
            Postavke.class);

  Bundle bundle=new Bundle();
  bundle.putString(|"messageKey1", "message content1");
  bundle.putString(|"messageKey2", "message content2");
   postavkeActivity.putExtras(bundle);

    startActivity(PostavkeActivity);

in main activity get bundle data like bellow

Bundle b=getIntent.getExtras();

String smsContent=b.getString("messageKey1");