Java代码
public class FansActivity extends ListActivity implements OnItemClickListener{

private DataHelper dataHelper;
private UserInfo user;
private MyWeiboSync weibo;
private Handler handler;
private AsyncImageLoader asyncImageLoader;
private FansThread thread;
private ListView listView;
private ProgressDialog progressDialog;
private JSONArray array;
private FansAdapter adapter;
private String name;
private String currentNick;//当前界面的昵称
private View top_panel;
private Button top_btn_left;
private Button top_btn_right;
private TextView top_title;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fans);
setUpViews();//设置view
setUpListeners();//设置listenter
asyncImageLoader = new AsyncImageLoader();
dataHelper = new DataHelper(FansActivity.this);
weibo = new MyWeiboSync();
List<UserInfo> userList = dataHelper.GetUserList(false);

SharedPreferences preferences = getSharedPreferences("default_user",Activity.MODE_PRIVATE);
String nick = preferences.getString("user_default_nick", "");//本地文件保存的你的登录昵称
if (nick != "") {
user = dataHelper.getUserByName(nick,userList);
}

weibo.setAccessTokenKey(user.getToken());
weibo.setAccessTokenSecrect(user.getTokenSecret());

Intent intent = getIntent();
name = intent.getStringExtra("name");//获取从前面页面传递过来的数据
currentNick = intent.getStringExtra("nick");
top_title.setText(currentNick+"的粉丝");

progressDialog = new ProgressDialog(FansActivity.this);// 生成一个进度条
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setTitle("请稍等");
progressDialog.setMessage("正在读取数据中!");

handler = new FansHandler();
thread = new FansThread();
thread.start();//开启一个线程获取数据
progressDialog.show();
}

private void setUpViews(){
listView = getListView();
top_panel = (View)findViewById(R.id.fans_top);
top_btn_left = (Button)top_panel.findViewById(R.id.top_btn_left);
top_btn_right = (Button)top_panel.findViewById(R.id.top_btn_right);
top_title = (TextView)top_panel.findViewById(R.id.top_title);
}

private void setUpListeners(){
listView.setOnItemClickListener(this);
}

class FansThread extends Thread {
@Override
public void run() {
String jsonStr = weibo.getFans(weibo.getAccessTokenKey(), weibo.getAccessTokenSecrect(), 20, 0, name);
try {
JSONObject dataObj = new JSONObject(jsonStr).getJSONObject("data");
array = dataObj.getJSONArray("info");
} catch (JSONException e) {
e.printStackTrace();
}
//通知handler处理数据
Message msg = handler.obtainMessage();
handler.sendMessage(msg);
}
}

class FansHandler extends Handler {
@Override
public void handleMessage(Message msg){
adapter = new FansAdapter(FansActivity.this, array);
listView.setAdapter(adapter);
progressDialog.dismiss();// 关闭进度条
}
}

class FansAdapter extends BaseAdapter {
private Context context;
private LayoutInflater inflater;
private JSONArray array;

public FansAdapter(Context context, JSONArray array) {
super();
this.context = context;
this.array = array;
this.inflater = LayoutInflater.from(context);
}

@Override
public int getCount() {
return array.length();
}

@Override
public Object getItem(int position) {
return array.opt(position);
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
asyncImageLoader = new AsyncImageLoader();
FansViewHolder viewHolder = new FansViewHolder();
JSONObject data = (JSONObject)array.opt(position);
convertView = inflater.inflate(R.layout.fans_list_item, null);

viewHolder.fans_headicon = (ImageView) convertView.findViewById(R.id.fans_headicon);
viewHolder.fans_nick = (TextView) convertView.findViewById(R.id.fans_nick);
viewHolder.fans_name = (TextView) convertView.findViewById(R.id.fans_name);

Drawable cachedImage = null;
if(data!=null){
try {
convertView.setTag(data.get("name"));
viewHolder.fans_nick.setText(data.getString("nick"));
viewHolder.fans_name.setText("@"+data.getString("name"));
//异步加载图片
cachedImage = asyncImageLoader.loadDrawable(data.getString("head")+"/100",viewHolder.fans_headicon, new ImageCallback(){
@Override
public void imageLoaded(Drawable imageDrawable,ImageView imageView, String imageUrl) {
imageView.setImageDrawable(imageDrawable);
}
});
if (cachedImage == null) {
viewHolder.fans_headicon.setImageResource(R.drawable.icon);
}
} catch (JSONException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
return convertView;
}
}

static class FansViewHolder {
private ImageView fans_headicon;
private TextView fans_nick;
private TextView fans_name;
}

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3){
Intent intent = new Intent(FansActivity.this,UserInfoActivity.class);
try {
JSONObject fansInfo = (JSONObject)array.opt(position);
JSONArray tweets = fansInfo.getJSONArray("tweet");
JSONObject tweet = null;
if(tweets!=null&&tweets.length()>0){
tweet = (JSONObject)tweets.opt(0);
intent.putExtra("origtext", tweet.getString("text"));
intent.putExtra("timestamp", TimeUtil.getStandardTime(tweet.getLong("timestamp")));
}
intent.putExtra("name", fansInfo.getString("name"));
intent.putExtra("nick", fansInfo.getString("nick"));
} catch (JSONException e) {
e.printStackTrace();
}
startActivity(intent);//跳转到用户信息界面
}
}


public class FansActivity extends ListActivity implements OnItemClickListener{


private DataHelper dataHelper;
private UserInfo user;
private MyWeiboSync weibo;
private Handler handler;
private AsyncImageLoader asyncImageLoader;
private FansThread thread;
private ListView listView;
private ProgressDialog progressDialog;
private JSONArray array;
private FansAdapter adapter;
private String name;
private String currentNick;//当前界面的昵称
private View top_panel;
private Button top_btn_left;
private Button top_btn_right;
private TextView top_title;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fans);
setUpViews();//设置view
setUpListeners();//设置listenter
asyncImageLoader = new AsyncImageLoader();
dataHelper = new DataHelper(FansActivity.this);
weibo = new MyWeiboSync();
List<UserInfo> userList = dataHelper.GetUserList(false);

SharedPreferences preferences = getSharedPreferences("default_user",Activity.MODE_PRIVATE);
String nick = preferences.getString("user_default_nick", "");//本地文件保存的你的登录昵称
if (nick != "") {
user = dataHelper.getUserByName(nick,userList);
}

weibo.setAccessTokenKey(user.getToken());
weibo.setAccessTokenSecrect(user.getTokenSecret());

Intent intent = getIntent();
name = intent.getStringExtra("name");//获取从前面页面传递过来的数据
currentNick = intent.getStringExtra("nick");
top_title.setText(currentNick+"的粉丝");

progressDialog = new ProgressDialog(FansActivity.this);// 生成一个进度条
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setTitle("请稍等");
progressDialog.setMessage("正在读取数据中!");

handler = new FansHandler();
thread = new FansThread();
thread.start();//开启一个线程获取数据
progressDialog.show();
}

private void setUpViews(){
listView = getListView();
top_panel = (View)findViewById(R.id.fans_top);
top_btn_left = (Button)top_panel.findViewById(R.id.top_btn_left);
top_btn_right = (Button)top_panel.findViewById(R.id.top_btn_right);
top_title = (TextView)top_panel.findViewById(R.id.top_title);
}

private void setUpListeners(){
listView.setOnItemClickListener(this);
}

class FansThread extends Thread {
@Override
public void run() {
String jsonStr = weibo.getFans(weibo.getAccessTokenKey(), weibo.getAccessTokenSecrect(), 20, 0, name);
try {
JSONObject dataObj = new JSONObject(jsonStr).getJSONObject("data");
array = dataObj.getJSONArray("info");
} catch (JSONException e) {
e.printStackTrace();
}
//通知handler处理数据
Message msg = handler.obtainMessage();
handler.sendMessage(msg);
}
}

class FansHandler extends Handler {
@Override
public void handleMessage(Message msg){
adapter = new FansAdapter(FansActivity.this, array);
listView.setAdapter(adapter);
progressDialog.dismiss();// 关闭进度条
}
}

class FansAdapter extends BaseAdapter {
private Context context;
private LayoutInflater inflater;
private JSONArray array;

public FansAdapter(Context context, JSONArray array) {
super();
this.context = context;
this.array = array;
this.inflater = LayoutInflater.from(context);
}


@Override
public int getCount() {
return array.length();
}


@Override
public Object getItem(int position) {
return array.opt(position);
}


@Override
public long getItemId(int position) {
return position;
}


@Override
public View getView(final int position, View convertView, ViewGroup parent) {
asyncImageLoader = new AsyncImageLoader();
FansViewHolder viewHolder = new FansViewHolder();
JSONObject data = (JSONObject)array.opt(position);
convertView = inflater.inflate(R.layout.fans_list_item, null);

viewHolder.fans_headicon = (ImageView) convertView.findViewById(R.id.fans_headicon);
viewHolder.fans_nick = (TextView) convertView.findViewById(R.id.fans_nick);
viewHolder.fans_name = (TextView) convertView.findViewById(R.id.fans_name);

Drawable cachedImage = null;
if(data!=null){
try {
convertView.setTag(data.get("name"));
viewHolder.fans_nick.setText(data.getString("nick"));
viewHolder.fans_name.setText("@"+data.getString("name"));
//异步加载图片
cachedImage = asyncImageLoader.loadDrawable(data.getString("head")+"/100",viewHolder.fans_headicon, new ImageCallback(){
@Override
public void imageLoaded(Drawable imageDrawable,ImageView imageView, String imageUrl) {
imageView.setImageDrawable(imageDrawable);
}
});
if (cachedImage == null) {
viewHolder.fans_headicon.setImageResource(R.drawable.icon);
}
} catch (JSONException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
return convertView;
}
}

static class FansViewHolder {
private ImageView fans_headicon;
private TextView fans_nick;
private TextView fans_name;
}


@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3){
Intent intent = new Intent(FansActivity.this,UserInfoActivity.class);
try {
JSONObject fansInfo = (JSONObject)array.opt(position);
JSONArray tweets = fansInfo.getJSONArray("tweet");
JSONObject tweet = null;
if(tweets!=null&&tweets.length()>0){
tweet = (JSONObject)tweets.opt(0);
intent.putExtra("origtext", tweet.getString("text"));
intent.putExtra("timestamp", TimeUtil.getStandardTime(tweet.getLong("timestamp")));
}
intent.putExtra("name", fansInfo.getString("name"));
intent.putExtra("nick", fansInfo.getString("nick"));
} catch (JSONException e) {
e.printStackTrace();
}
startActivity(intent);//跳转到用户信息界面
}
}




Java代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ffffffff"
xmlns:android="http://schemas.android.com/apk/res/android">
<include android:id="@+id/fans_top" layout="@layout/top_panel" android:layout_alignParentTop="true"/>
<ListView android:id="@id/android:list" android:layout_below="@id/fans_top" android:layout_width="fill_parent" android:cacheColorHint="#00000000"
android:layout_height="wrap_content" android:layout_weight="1" android:divider="@drawable/list_divider"/>
<RelativeLayout android:layout_width="fill_parent" android:layout_height="40.0dip" android:layout_alignParentBottom="true">
<Button android:id="@+id/fans_back_btn" android:layout_width="40.0dip" android:drawableTop="@drawable/btn_back_selector" android:background="@drawable/bottom_back_bg"
android:layout_height="40.0dip" android:layout_alignParentLeft="true"/>
<Button android:id="@+id/fans_tohome_btn" android:layout_width="40.0dip"
android:layout_height="40.0dip" android:drawableTop="@drawable/btn_home_selector" android:background="@drawable/bottom_home_bg" android:layout_alignParentRight="true"/>
</RelativeLayout>
</RelativeLayout>


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ffffffff"
xmlns:android="http://schemas.android.com/apk/res/android">
<include android:id="@+id/fans_top" layout="@layout/top_panel" android:layout_alignParentTop="true"/>
<ListView android:id="@id/android:list" android:layout_below="@id/fans_top" android:layout_width="fill_parent" android:cacheColorHint="#00000000"
android:layout_height="wrap_content" android:layout_weight="1" android:divider="@drawable/list_divider"/>
<RelativeLayout android:layout_width="fill_parent" android:layout_height="40.0dip" android:layout_alignParentBottom="true">
<Button android:id="@+id/fans_back_btn" android:layout_width="40.0dip" android:drawableTop="@drawable/btn_back_selector" android:background="@drawable/bottom_back_bg"
android:layout_height="40.0dip" android:layout_alignParentLeft="true"/>
<Button android:id="@+id/fans_tohome_btn" android:layout_width="40.0dip"
android:layout_height="40.0dip" android:drawableTop="@drawable/btn_home_selector" android:background="@drawable/bottom_home_bg" android:layout_alignParentRight="true"/>
</RelativeLayout>
</RelativeLayout>




Java代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:paddingTop="3.0dip" android:orientation="horizontal" android:background="@drawable/listitem_selector" android:layout_width="fill_parent" android:layout_height="wrap_content">
<RelativeLayout android:layout_width="50.0dip" android:layout_height="50.0dip" android:layout_weight="0.0">
<ImageView android:id="@+id/fans_headicon" android:layout_width="45.0dip" android:layout_height="45.0dip" android:scaleType="fitCenter" android:layout_centerInParent="true" />
</RelativeLayout>
<RelativeLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="4.0dip" android:layout_weight="1.0">
<TextView android:id="@+id/fans_nick" android:textColor="#000000" android:layout_width="wrap_content" android:layout_height="32.0dip" android:textSize="14.0sp" android:layout_alignParentLeft="true"/>
<TextView android:id="@+id/fans_name" android:layout_marginLeft="6.0dip" android:layout_below="@id/fans_nick" android:textColor="#ff000000" android:layout_width="wrap_content" android:layout_height="32.0dip" android:textSize="8.0sp" android:layout_alignParentLeft="true"/>
</RelativeLayout>
</LinearLayout>


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:paddingTop="3.0dip" android:orientation="horizontal" android:background="@drawable/listitem_selector" android:layout_width="fill_parent" android:layout_height="wrap_content">
<RelativeLayout android:layout_width="50.0dip" android:layout_height="50.0dip" android:layout_weight="0.0">
<ImageView android:id="@+id/fans_headicon" android:layout_width="45.0dip" android:layout_height="45.0dip" android:scaleType="fitCenter" android:layout_centerInParent="true" />
</RelativeLayout>
<RelativeLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="4.0dip" android:layout_weight="1.0">
<TextView android:id="@+id/fans_nick" android:textColor="#000000" android:layout_width="wrap_content" android:layout_height="32.0dip" android:textSize="14.0sp" android:layout_alignParentLeft="true"/>
<TextView android:id="@+id/fans_name" android:layout_marginLeft="6.0dip" android:layout_below="@id/fans_nick" android:textColor="#ff000000" android:layout_width="wrap_content" android:layout_height="32.0dip" android:textSize="8.0sp" android:layout_alignParentLeft="true"/>
</RelativeLayout>
</LinearLayout>

更多相关文章

  1. Android获取应用的签名信息
  2. Android(安卓)关于 如何使用外界导入的数据库文件
  3. android 获取屏幕分辨率
  4. android中Json数据保存方式
  5. android朋友圈监听键盘状态 点击空白区域隐藏键盘
  6. android 获取当前系统的语言
  7. 获取android正在运行的所有app进程
  8. mybatisplus的坑 insert标签insert into select无参数问题的解决
  9. python起点网月票榜字体反爬案例

随机推荐

  1. android 取消标题,程序意外停止
  2. [androd] android的在线源码网站,各个版本
  3. Android中ProgressDialog的简单使用.
  4. Android沉浸式状态栏、导航栏
  5. android 中使文本(TextView 、button等可
  6. android 支付宝SDK集成
  7. Android 无法查看外部依赖jar的源码的问
  8. android 自定义SeekBar
  9. 百度地图 android 相关收集
  10. Android:GestureDetector手势识别类