Note that there are some explanatory texts on larger screens.

plurals
  1. POChanging Activities to Classes - Android
    primarykey
    data
    text
    <p>I am somewhat new to Java and Android and I'm having trouble with classes and activities. I was cleaning up my code and moved a lot of it from my MainActivity to different classes, but I was only able to get the app to work by creating new activities instead of classes. </p> <ul> <li>I need to stay in the main view and just use the class's methods</li> <li>From the main activity a button, counts down and then calls the LocationActivity. </li> <li>LocationActivity finds the GPS coordinates and then sends them to SendActivity. </li> </ul> <p>This is the only way I could get it to work because I just needed to start the locationListener, so I just started it in the onCreate section.</p> <p>MainActivity.java</p> <pre><code> public class MainActivity extends Activity { Button mCloseButton; Button mOpenButton; MultiDirectionSlidingDrawer mDrawer; private Button send_button; Button sendButton; EditText msgTextField; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature( Window.FEATURE_NO_TITLE ); setContentView(R.layout.main); send_button = (Button)findViewById(R.id.button2); mDrawer.open(); mCloseButton.setOnClickListener( new OnClickListener() { public void onClick( View v ) { mDrawer.animateClose(); } }); mOpenButton.setOnClickListener( new OnClickListener() { public void onClick( View v ) { if( !mDrawer.isOpened() ) mDrawer.animateOpen(); } }); final SharedPreferences shared = getSharedPreferences("PEOPLE_PREFERENCES", MODE_PRIVATE); final String first = shared.getString("FIRSTNAME", ""); final String last = shared.getString("LASTNAME", "0"); ///////Profile Button//////////////// Button profile = (Button) findViewById(R.id.button1); profile.setOnClickListener(new OnClickListener() { public void onClick(View v) { startActivity(new Intent(MainActivity.this, PreferencesActivity.class)); } }); /////////////////////////////////// //////Generate ID////////////////// if (usr_id == null) { char[] chars = "abcdefghijklmnopqrstuvwxyzABSDEFGHIJKLMNOPQRSTUVWXYZ1234567890".toCharArray(); Random r = new Random(System.currentTimeMillis()); char[] id = new char[8]; for (int i = 0; i &lt; 8; i++) { id[i] = chars[r.nextInt(chars.length)]; } usr_id = new String(id); Editor editor = shared.edit(); editor.putString("USR_ID", usr_id); editor.commit(); } ////////////////////////////////// ////////Send Alert//////////////// ///////Begin Timer/////////////// send_button.setOnClickListener(new OnClickListener() { private boolean running = false; private CountDownTimer timer; public void onClick(View v) { if(!running) { running = true; timer = new CountDownTimer(4000, 1000) { @Override public void onFinish() { send_button.setText("SENT"); startActivity(new Intent(MainActivity.this, LocationActivity.class)); SendUserActivity.sendId(usr_id1, first, last); } @Override public void onTick(long sec) { send_button.setText("CANCEL (" + sec / 1000 + ")"); } }.start(); } else { timer.cancel(); send_button.setText("Send!"); running = false; } } }); } /////////////////////////////////// @Override public void onContentChanged() { super.onContentChanged(); mCloseButton = (Button) findViewById( R.id.button_open ); mOpenButton = (Button) findViewById( R.id.button_open ); mDrawer = (MultiDirectionSlidingDrawer) findViewById( R.id.drawer ); } } </code></pre> <p>LocationActivity.java</p> <pre><code> package com.alex.www; import android.app.Activity; import android.content.Context; import android.content.SharedPreferences; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.util.Log; import android.widget.Button; public class LocationActivity extends Activity { private LocationManager locManager; private LocationListener locListener; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); startLocation(); } void startLocation() { SharedPreferences shared = getSharedPreferences("PEOPLE_PREFERENCES", MODE_PRIVATE); final String usr_id2 = shared.getString("USR_ID", "none"); //get a reference to the LocationManager locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); //checked to receive updates from the position locListener = new LocationListener() { public void onLocationChanged(Location location) { SendActivity.send(location, usr_id2); } public void onProviderDisabled(String provider){ //labelState.setText("Provider OFF"); } public void onProviderEnabled(String provider){ //labelState.setText("Provider ON "); } public void onStatusChanged(String provider, int status, Bundle extras){ Log.i("", "Provider Status: " + status); } }; locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locListener); } } </code></pre> <p>SendActivity.java</p> <pre><code> package com.alex.www; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import android.app.Activity; import android.content.SharedPreferences; import android.location.Location; import android.os.Bundle; import android.util.Log; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class SendActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } public static void send(Location loc, String usr_id2) { Log.i("", String.valueOf(loc.getLatitude() + " - " + String.valueOf(loc.getLongitude()))); String lat = String.valueOf(loc.getLatitude()); String lon = String.valueOf(loc.getLongitude()); HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://example.com/test/example.php"); try { List&lt;NameValuePair&gt; nameValuePairs = new ArrayList&lt;NameValuePair&gt;(2); nameValuePairs.add(new BasicNameValuePair("lat", lat)); nameValuePairs.add(new BasicNameValuePair("lon", lon)); nameValuePairs.add(new BasicNameValuePair("id", usr_id2)); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); httpclient.execute(httppost); } catch (ClientProtocolException e) { // TODO Auto-generated catch block } catch (IOException e) { // TODO Auto-generated catch block } } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload