Twitterのタイムラインをアプリに追加し、ユーザーが自分のステータスを更新できるようにしたいと考えています。問題は、ログイン画面にアクセスする方法がわからないことです。オンラインで検索してみましたが、すべて古くなっているので、バージョン4.0以降で開発したいと思います。
これまでのところ、次のようになっています。Android> 4.0のAndroidアプリで使用したため、コードがまったく機能しないようです。そのため、15以降のSDKではコンパイルされません。また、今回はTwitter4Jライブラリを使用しており、ファイルはすべて更新されています。
package com.shirwa.texthero.fragments;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
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;
import com.shirwa.texthero.R;
public class TwitterTab extends Activity implements OnClickListener {
static final String TAG = "MyTwitter";
TwitterTab twitter;
SharedPreferences prefs;
Button buttonUpdate;
Button buttonPrefs;
EditText textStatus;
@Override
public void onClick(View src) {
String status = textStatus.getText().toString();
Log.d(TAG, "Clicked on " + status);
// Toast
Toast.makeText(this, textStatus.getText(), Toast.LENGTH_LONG).show();
// set twitter status
twitter.updateStatus(status);
// reset status string
textStatus.setText("");
}
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// find views by id
buttonUpdate = (Button) findViewById(R.id.buttonUpdate);
textStatus = (EditText) findViewById(R.id.textStatus);
// Add listener
buttonUpdate.setOnClickListener(this);
// Initialize twitter
prefs = PreferenceManager.getDefaultSharedPreferences(this);
String username = prefs.getString("username", "n/a");
String password = prefs.getString("password", "n/a");
if (username != null && password != null) {
twitter = new Twitter(username, password);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
// Called when menu item is selected //
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menuPrefs:
// Launch Prefs activity
Intent i = new Intent(TwitterTab.this, Prefs.class);
startActivity(i);
Log.d(TAG, "MenuPrefs starting Prefs");
Toast.makeText(TwitterTab.this, textStatus.getText(),
Toast.LENGTH_LONG).show();
break;
}
return true;
}
}