Video: 182nd Knowledge Seekers Workshop, Thursday, July 27, 2017 2024
Det er flere stadier å utvikle en Twitter-app som vil fungere på Android-enheter. En ting du må adressere er søknadens hovedaktivitet. Følgende kode inneholder Twitter-appens Java-kode.
pakke com. allmycode. twitter; importere android. app. Aktivitet; importere android. os. AsyncTask; importere android. os. Bunt; importere android. tekst. redigerbar; importere android. tekst. TextWatcher; importere android. tekst. metode. ScrollingMovementMethod; importere android. utsikt. Utsikt; importere android. widget. EditText; importere android. widget. TextView; importer java. util. Liste; importer twitter4j. Twitter; importer twitter4j. TwitterException; importer twitter4j. TwitterFactory; importer twitter4j. conf. ConfigurationBuilder; offentlig klasse MainActivity utvider Aktivitet {TextView textViewCountChars, textViewTimeline; EditText editTextTweet, editTextUsername; Twitter twitter; @Override protected void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R. layout. activity_main); editTextTweet = (EditText) findViewById (R. id. editTextTweet); editTextTweet. addTextChangedListener (ny MyTextWatcher ()); textViewCountChars = (TextView) findViewById (R. id. textViewCountChars); editTextUsername = (EditText) findViewById (R. id. editTextUsername); textViewTimeline = (TextView) findViewById (R. id. textViewTimeline); textViewTimeline. setMovementMethod (new ScrollingMovementMethod ()); ConfigurationBuilder builder = ny ConfigurationBuilder (); bygger. setOAuthConsumerKey (“01qedaqsdtdemrVJIkU1dg”). setOAuthConsumerSecret (“TudeMgXgh37Ivq173SNWnRIhI”). setOAuthAccessToken (“1385541-ueSEFeFgJ8vUpfy6LBv6”). setOAuthAccessTokenSecret (“G2FXeXYLSHI7XlVdMsS2e”); TwitterFactory fabrikk = ny TwitterFactory (byggmester. Bygge ()); twitter = fabrikk. getInstance ();} // Knapp klikk lyttere offentlig tomgang onTweetButtonClick (Vis visning) {new MyAsyncTaskTweet (). utfør (editTextTweet. getText (). toString ());} offentlig tomgang onTimelineButtonClick (Vis visning) {new MyAsyncTaskTimeline (). utfør (editTextUsername. getText ().StString ()); // // Telle tegn i Tweet-feltet klassen MyTextWatcher implementerer TextWatcher {@Override public void afterTextChanged (Editable s) {textViewCountChars.setText () + editTextTweet. getText ().lengde ());} @Override public void beforeTextChanged (CharSequence s, int start, int count, int etter) {} @Override public void onTextChanged (CharSequence s, int start, int før, int count) {}} // AsyncTask klassen offentlig klasse MyAsyncTaskTweet utvider AsyncTask {@Override protected String doInBackground (String … tweet) {String resultat = ""; prøv {twitter. updateStatus (tweet [0]); result = getResources (). getString (R. streng. suksess);} catch (TwitterException twitterException) {result = getResources (). getString (R. streng, twitter_failure);} fangst (Unntak e) {result = getResources (). getString (R. streng. general_failure);} returresultat;} @Override protected void onPostExecute (Stringresultat) {editTextTweet. setHint (resultat); editTextTweet. setText ("");}} offentlig klasse MyAsyncTaskTimeline utvider AsyncTask {@Override protected String doInBackground (String … brukernavn) {String result = new String (""); Liste statuses = null; prøv {statuses = twitter. getUserTimeline (brukernavn [0]);} catch (TwitterException twitterException) {result = getResources (). getString (R. streng, twitter_failure);} fangst (Unntak e) {result = getResources (). getString (R. streng. general_failure);} for (twitter4j. Status status: statuser) {result + = status. GetText (); resultat + = "n";} returresultat;} @Override protected void onPostExecute (Stringresultat) {editTextUsername. setText (““); textViewTimeline. setText (result);}}}
Twitters nettverksprotokoller krever at enheten som kjører de fleste apper, er satt til riktig tid. Dette kan muligens føre til at du har mange problemer med å kjøre appen på emulatorer. Hvis du møter dette problemet, er feilmeldingen som kommer tilbake fra Twitter (vanligvis angi en nullautentiseringsutfordring) ikke nyttig. Så du kan unngå mye stress ved å unngå emulatorer når du tester denne koden. Bare sett telefonen eller nettbrettet for å få nettverkstid automatisk. Kjør deretter appen på den enheten.
Når du kjører appen, ser du to områder. Ett område inneholder en Tweet-knapp; Det andre området inneholder en tidslinjeknapp.
Hovedaktiviteten i sin uberørte tilstand.I dette bildet er teksten i begge tekstfeltene lysegrå. Dette skjer fordi android: hintattributter blir brukt i koden. Et hint er en haug med tegn som bare vises når et tekstfelt ellers er tomt. Når brukeren klikker inne i tekstfeltet, eller skriver inn tekst i tekstfeltet, forsvinner hinten.
Skriv en tweet i tekstfeltet øverst; trykk deretter på Tweet-knappen.
Brukeren skriver en tweet.Hvis forsøket på tweet er vellykket, vil meldingen Suksess! erstatter tweet i tekstfeltet.
Hvis tweetet av en eller annen grunn ikke kan bli lagt ut, erstatter en melding som "Feil å tweet" tweet i tekstfeltet.
Appen bringer dårlige meldinger til brukeren.Skriv deretter inn et brukernavn i nedre tekstfeltet og klikk på Tidslinje.Hvis alt går bra, vises en liste over brukerens siste tweets under Tidslinjeknappen. Du kan bla i listen for å se flere av brukerens tweets.
En brukers tidslinje.