Hi guys Im trying to get into a bit of java dev in android, Ive only done a small amount of java before but have found some really good tutorials on Open Source Training - Marakana
Im making there micro bloging app from the android bootcamp series and have got stuck with a runtime error. Its a null pointer exception in the code that references how to post to twitter, i think my code is the same as in the video but im getting an error so any help would be appreciated.
StatusActivity.java (main activity and where the error is happening)
YambaApplication.java (application class where the referenced code is)Code:package com.Yamba.fooforever; import winterwell.jtwitter.TwitterException; import android.app.Activity; import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class StatusActivity extends Activity implements OnClickListener { EditText editStatus; Button buttonUpdate; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Debug.startMethodTracing("yamba.trace"); setContentView(R.layout.status); editStatus = (EditText) findViewById(R.id.editStatus); buttonUpdate = (Button) findViewById(R.id.buttonUpdate); buttonUpdate.setOnClickListener(this); } @Override protected void onStop() { super.onStop(); // Debug.stopMethodTracing(); } public void onClick(View v) { String status = editStatus.getText().toString(); new PostToTwitter().execute(status); Log.d("statusActivity", "on click'd with status: " + status); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.itemPrefs: startActivity(new Intent(this, PrefsActivity.class)); break; } return true; } private class PostToTwitter extends AsyncTask<String, String, String> { @Override protected String doInBackground(String... status) { String result; // Update Status Online try { YambaApplication app = ((YambaApplication) StatusActivity.this .getApplication()); ERROR HAPPENS HERE ->app.getTwitter().setStatus(status[0]); result = StatusActivity.this .getString(R.string.toastSuccessful); return null; } catch (TwitterException e) { e.printStackTrace(); result = StatusActivity.this .getString(R.string.toastUnsuccessful); } return result; } @Override protected void onPostExecute(String result) { super.onPostExecute(result); Toast.makeText(StatusActivity.this, result, Toast.LENGTH_LONG) .show(); } } }
Thanks for any help.Code:package com.Yamba.fooforever; import winterwell.jtwitter.Twitter; import android.app.Application; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.preference.PreferenceManager; public class YambaApplication extends Application { SharedPreferences prefs; private Twitter twitter = null; @Override public void onCreate() { super.onCreate(); prefs = PreferenceManager.getDefaultSharedPreferences(this); } REFERENCED CODE -> public synchronized Twitter getTwitter(){ if (twitter == null) { String username = prefs.getString("username", ""); String password = prefs.getString("password", ""); String api = prefs.getString("api", ""); twitter = new Twitter(username, password); twitter.setAPIRootUrl(api); } return null; } }


LinkBack URL
About LinkBacks
Reply With Quote

Bookmarks