こんにちは、これは私の最初のアプリです。私はプログラミングとアンドロイドに関しては初心者です。私のアプリはツイッターアプリに似ています。しかし、Twitter から値を取得する代わりに、データベースから値を取得します。アプリには、画像と Web ページへのリンクが読み込まれます。
私の質問。私のアプリがアプリストアにあり、誰かがそれをダウンロードしたとしましょう。私のアプリは、Json を介して私の mysql データベースからコンテンツのほとんどを取得します。新しいコンテンツをデータベースに追加するたびに、ユーザーはアプリを更新して新しいコンテンツを取得するか、自動的に更新する必要があります。
誰かが私のコードを見てもらえますか。Async() と doInBackground() についてはよくわかりません。他に役立つコーディングの提案があれば、お知らせください。このアプリが完成したら、App Store に掲載したいと考えています。
敬具
public class TwitterFeedActivity extends ListActivity {
private ArrayList<Tweet> tweets = new ArrayList<Tweet>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new MyTask().execute();
}
private class MyTask extends AsyncTask<Void, Void, Void> {
private ProgressDialog progressDialog;
protected void onPreExecute() {
progressDialog = ProgressDialog.show(TwitterFeedActivity.this,
"", "Loading. Please wait...", true);
}
@Override
protected Void doInBackground(Void... arg0) {
try {
HttpClient hc = new DefaultHttpClient();
HttpGet get = new HttpGet("http://myurl.com");
HttpResponse rp = hc.execute(get);
if(rp.getStatusLine().getStatusCode() == HttpStatus.SC_OK)
{
String result = EntityUtils.toString(rp.getEntity());
JSONObject root = new JSONObject(result);
JSONArray sessions = root.getJSONArray("results");
for (int i = 0; i < sessions.length(); i++) {
JSONObject session = sessions.getJSONObject(i);
Tweet tweet = new Tweet();
tweet.n_text = session.getString("n_text");
tweet.n_name = session.getString("n_name");
tweet.Image = session.getString("Image");
tweets.add(tweet);
}
}
} catch (Exception e) {
Log.e("TwitterFeedActivity", "Error loading JSON", e);
}
return null;
}
@Override
protected void onPostExecute(Void result) {
progressDialog.dismiss();
setListAdapter(new TweetListAdaptor(TwitterFeedActivity.this, R.layout.list_item, tweets));
}
}
private class TweetListAdaptor extends ArrayAdapter<Tweet> {
private ArrayList<Tweet> tweets;
public TweetListAdaptor(Context context, int textViewResourceId, ArrayList<Tweet> items) {
super(context, textViewResourceId, items);
this.tweets = items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.list_item, null);
}
final Tweet o = tweets.get(position);
TextView tt = (TextView) v.findViewById(R.id.toptext);
TextView bt = (TextView) v.findViewById(R.id.bottomtext);
ImageView image = (ImageView) v.findViewById(R.id.avatar);
bt.setText(o.n_name);
tt.setText(o.n_text);
image.setImageBitmap(getBitmap(o.Image));
image.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.addCategory(Intent.CATEGORY_BROWSABLE);
intent.setData(Uri.parse(o.n_text));
startActivity(intent);
}
});
return v;
}
}
public Bitmap getBitmap(String bitmapUrl) {
try {
URL url = new URL(bitmapUrl);
return BitmapFactory.decodeStream(url.openConnection().getInputStream());
}
catch(Exception ex) {return null;}
}
}