⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 activityshowsaying.java

📁 android开发入门与实践源代码
💻 JAVA
字号:
package com.douban.android;import java.io.IOException;import java.util.ArrayList;import android.content.Context;import android.content.SharedPreferences;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.view.View.OnClickListener;import android.widget.AbsListView;import android.widget.BaseAdapter;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.ListView;import android.widget.TextView;import com.douban.android.util.PreferencesUtil;import com.google.gdata.client.douban.DoubanService;import com.google.gdata.data.PlainTextConstruct;import com.google.gdata.data.TextContent;import com.google.gdata.data.douban.MiniblogEntry;import com.google.gdata.data.douban.MiniblogFeed;import com.google.gdata.util.ServiceException;/** * @author haiyang 显示我说的界面 */public class ActivityShowSaying extends AbstractActivity {	ListView listView;	OnClickListener listener = null;	EditText editText = null;	Button button = null;	SayingListAdapter sayingListAdapter = null;	private class Saying {		public String id;		public String nickname;		public String content;		public String time;	}	/** Called when the activity is first created. */	@Override	public void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		// 显示列表		setContentView(R.layout.show_saying);		listView = (ListView) findViewById(R.id.saying_list);		sayingListAdapter = new SayingListAdapter(this,				getSayingArraryFromInternet());		listView.setAdapter(sayingListAdapter);		editText = (EditText) findViewById(R.id.content);		listener = new OnClickListener() {			public void onClick(View v) {				setTitle("sending");				DoubanService myService = getAuthDoubanService();				try {					sayingListAdapter.addSaying(myService							.createSaying(new PlainTextConstruct((editText									.getText()).toString())));				} catch (IOException e) {					setTitle("sending error");					e.printStackTrace();				} catch (ServiceException e) {					setTitle("sending error");					e.printStackTrace();				}			}		};		button = (Button) findViewById(R.id.send);		button.setOnClickListener(listener);	}	/*	 * 得到我说的内容	 */	private ArrayList<Saying> getSayingArraryFromInternet() {		ArrayList<Saying> sayingList = new ArrayList<Saying>();		SharedPreferences settings = getSharedPreferences(				PreferencesUtil.preferencesDouban, 0);		String userId = settings.getString(PreferencesUtil.userName,				"haiyangjy");		MiniblogFeed mf;		try {			DoubanService myService = getAuthDoubanService();			mf = myService.getContactsMiniblogs(userId, 1, 20);			for (MiniblogEntry me : mf.getEntries()) {				Saying saying = new Saying();				String nickname = me.getAuthors().get(0).getName();				String content = ((TextContent) me.getContent()).getContent()						.getPlainText();				saying.content = content;				saying.nickname = nickname;				sayingList.add(saying);			}		} catch (IOException e) {			e.printStackTrace();		} catch (ServiceException e) {			e.printStackTrace();		}		return sayingList;	}	public class SayingListAdapter extends BaseAdapter {		private Context mContext;		private ArrayList<Saying> sayingList;		public SayingListAdapter(Context context, ArrayList<Saying> sayingList) {			mContext = context;			SayingListAdapter.this.sayingList = sayingList;		}		@Override		public int getCount() {			return sayingList.size();		}		@Override		public Object getItem(int position) {			return position;		}		@Override		public long getItemId(int position) {			return position;		}		@Override		public View getView(int position, View convertView, ViewGroup parent) {			SayingView sayingView;			Saying saying = sayingList.get(position);			if (convertView == null) {				sayingView = new SayingView(mContext, saying);			} else {				sayingView = (SayingView) convertView;				sayingView.setNickname(saying.nickname);				sayingView.setContent(saying.content);			}			return sayingView;		}		/**		 * 实时显示增加的我说		 * 		 * @param miniblogEntry		 */		public void addSaying(MiniblogEntry miniblogEntry) {			Saying newSaying = new Saying();			newSaying.content = ((TextContent) miniblogEntry.getContent())					.getContent().getPlainText();			newSaying.nickname = miniblogEntry.getAuthors().get(0).getName();			sayingList.add(0, newSaying);			notifyDataSetChanged();		}	}	/**	 * 我说列表的每一个条目	 * 	 * @author Administrator	 * 	 */	public class SayingView extends LinearLayout {		private TextView tNickname;		private TextView tContent;		private ImageView imageView;		private Saying saying;		private Context mContext;		public SayingView(Context context, Saying saying) {			super(context);			mContext = context;			SayingView.this.saying = saying;			imageView = getImageViewFromLocal();			addView(imageView);			tNickname = new TextView(context);			tNickname.setText(saying.nickname+": ");			addView(tNickname, new LinearLayout.LayoutParams(					LayoutParams.WRAP_CONTENT, 48));			tContent = new TextView(context);			tContent.setText(saying.content);			addView(tContent, new LinearLayout.LayoutParams(					LayoutParams.WRAP_CONTENT, 48));		}		/**		 * 重新设置昵称		 * 		 * @param nickname		 */		public void setNickname(String nickname) {			tNickname.setText(nickname+": ");		}		/**		 * 重新设置我说的内容		 * 		 * @param content		 */		public void setContent(String content) {			tContent.setText(content);		}		/*		 * 得到本地的默认图片		 */		private ImageView getImageViewFromLocal() {			ImageView imageView = new ImageView(mContext);			imageView.setImageResource(R.drawable.default_head);			imageView.setAdjustViewBounds(true);			imageView.setLayoutParams(new AbsListView.LayoutParams(					LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));			return imageView;		}			}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -