用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - android代码库

新浪微博Android源代码(基于OAuth1.0 仅供学习)

2013-03-10 作者: 小蜜锋举报

[android]代码库

package com.shaccp.ui;
 
import java.util.HashMap;
import java.util.List;
 
import weibo4andriod.Status;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
 
import com.shaccp.logic.IWeiboActivity;
import com.shaccp.logic.MainService;
import com.shaccp.logic.Task;
import com.shaccp.util.NetUtil;
 
public class Home extends Activity implements IWeiboActivity {
    public static final int REFRESH_WEIBO = 1;
    public static final int REFRESH_ICON = 2;
 
    View process;
    ListView lv;
    Button btnNew;
    Button btnRef;
    public ListView allStatus;
 
    public int nowpage = 1;
    public int pagesize = 5;
 
    TextView tv;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.home);
        allStatus = (ListView) this.findViewById(R.id.freelook_listview);
        lv = (ListView) findViewById(R.id.freelook_listview);
        MainService.allActivity.add(this);
        init();
        allStatus = (ListView) this.findViewById(R.id.freelook_listview);
        registerForContextMenu(allStatus);
 
        allStatus.setOnItemClickListener(new OnItemClickListener() {
 
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
 
                if (arg3 == -1) {
                    nowpage++;
                    HashMap para = new HashMap();
                    para.put("nowpage", new Integer(nowpage));
                    para.put("pagesize", new Integer(pagesize));
                    Task task = new Task(Task.TASK_GET_TIMELINE, para);
                    MainService.allTask.add(task);
                }
 
            }
 
        });
        process = findViewById(R.id.progress);
 
        tv = (TextView) findViewById(R.id.textView);
        tv.setText(MainService.nowUser.getScreenName());
        btnNew = (Button) findViewById(R.id.title_bt_left);
        btnRef = (Button) findViewById(R.id.title_bt_right);
 
        btnNew.setOnClickListener(new OnClickListener() {
 
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
 
                Intent it = new Intent(Home.this, NewWeibo.class);
 
                startActivity(it);
 
            }
        });
 
        MainService.allActivity.add(this);
 
        btnRef.setOnClickListener(new OnClickListener() {
 
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                process.setVisibility(View.VISIBLE);
                Task t = new Task(Task.TASK_GET_TIMELINE, null);
                MainService.newTask(t);
            }
        });
 
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // TODO Auto-generated method stub
 
        // "设置" "账号" "官方" "意见" "关于" "退出"
        menu.add(1, 1, 0, "设置").setIcon(R.id.setting);
        /*
         * menu.add(1, 2, 1, "账号").setIcon(R.id.main_switchuser); menu.add(1, 3,
         * 2, "官方").setIcon(R.id.setting); menu.add(2, 4, 3,
         * "意见").setIcon(R.id.setting); menu.add(2, 5, 4,
         * "关于").setIcon(R.id.about); menu.add(2, 6, 5,
         * "退出").setIcon(R.id.setting);
         */
        return super.onCreateOptionsMenu(menu);
    }
 
    @Override
    public boolean onMenuItemSelected(int featureId, MenuItem item) {
        // TODO Auto-generated method stub
 
        switch (item.getItemId()) {
        case 1:
 
            break;
        case 2:
 
            break;
        case 3:
 
            break;
 
        case 4:
 
            break;
        case 5:
 
            break;
        case 6:
 
            break;
 
        }
 
        return super.onMenuItemSelected(featureId, item);
    }
 
    @Override
    public void init() {
        // TODO Auto-generated method stub
        HashMap para = new HashMap();
        para.put("nowpage", new Integer(nowpage));
        para.put("pagesize", new Integer(pagesize));
        Task task = new Task(Task.TASK_GET_TIMELINE, para);
        MainService.allTask.add(task);
 
    }
 
    @Override
    public void refresh(Object... args) {
        // TODO Auto-generated method stub
 
        switch (((Integer) args[0]).intValue()) {
 
        case REFRESH_WEIBO:
            if (nowpage == 1) {
                process.setVisibility(View.GONE);
                MyAdapter ad = new MyAdapter(this, (List<Status>) args[1]);
                lv.setAdapter(ad);
                // ad.notifyDataSetChanged();
            } else {
                ((MyAdapter) allStatus.getAdapter())
                        .addMoreDate((List<Status>) args[1]);
 
            }
 
            break;
 
        case REFRESH_ICON:
 
            ((MyAdapter) allStatus.getAdapter()).notifyDataSetChanged();
 
            break;
        }
 
    }
 
}
 
class MyAdapter extends BaseAdapter {
 
    public List<Status> alls;
    public Context conts;
 
    public MyAdapter(Context con, List<Status> st) {
        conts = con;
        alls = st;
    }
 
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return alls.size() + 2;
    }
 
    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return null;
    }
 
    @Override
    public long getItemId(int index) {
        // TODO Auto-generated method stub
        // return alls.get(index).getId();
 
        if (index == 0) {
            return 0;
        } else if (index > 0 && index < this.getCount() - 1) {
            return alls.get(index - 1).getId();
        } else {
            return -1;
        }
    }
 
    public void addMoreDate(List<Status> moreDate) {
        this.alls.addAll(moreDate);
        this.notifyDataSetChanged();
    }
 
    // 定义静态类用于获取处理列表中每个条目数据的更新
    private static class ViewHolder {
        ImageView ivItemPortrait;// 头像 有默认值
        TextView tvItemName;// 昵称
        ImageView ivItemV;// 新浪认证 默认gone
        TextView tvItemDate;// 时间
        ImageView ivItemPic;// 时间图片 不用修改
        TextView tvItemContent;// 内容
        ImageView contentPic;// 自己增加的内容图片显示的imgView
        View subLayout;// 回复默认gone
        TextView tvItemSubContent;// 回复内容 subLayout显示才可以显示
        ImageView subContentPic;// 自己增加的主要显示回复内容的图片。subLayout显示才可以显示
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
 
        if (position == 0) {
            View view = LayoutInflater.from(conts).inflate(
                    R.layout.list_moreitems, null);
            TextView tv = (TextView) view.findViewById(R.id.textView);
            tv.setText("刷新");
            return view;
        } else if (position == getCount() - 1) {
            View view = LayoutInflater.from(conts).inflate(
                    R.layout.list_moreitems, null);
            TextView tv = (TextView) view.findViewById(R.id.textView);
            tv.setText("更多");
            return view;
        }
 
        View statusView = null;
 
        if (statusView != null
                && (convertView.findViewById(R.id.ivItemPortrait) != null)) {
 
            statusView = (TextView) convertView;
        } else {
            statusView = LayoutInflater.from(conts).inflate(R.layout.itemview,
                    null);
        }
 
        ViewHolder holder = null;
        holder = new ViewHolder();
        holder.ivItemPortrait = (ImageView) statusView
                .findViewById(R.id.ivItemPortrait);
        holder.tvItemName = (TextView) statusView.findViewById(R.id.tvItemName);
        holder.tvItemContent = (TextView) statusView
                .findViewById(R.id.tvItemContent);
        holder.tvItemDate = (TextView) statusView.findViewById(R.id.tvItemDate);
 
        Log.d("listview", "listv:" + position);
 
        // 设定昵称
        holder.tvItemName.setText(alls.get(position - 1).getUser()
                .getScreenName());
        // 设定内容
        holder.tvItemContent.setText(alls.get(position - 1).getText());
 
        // 获取头像
        if (MainService.alluserIcon.get(alls.get(position - 1).getUser()
                .getId()) != null) {
 
        }
        holder.ivItemPortrait.setImageDrawable(MainService.alluserIcon.get(alls
                .get(position - 1).getUser().getId()));
 
        holder.tvItemDate.setText(NetUtil.getTimeDiff(alls.get(position - 1)
                .getCreatedAt()));
 
        return statusView;
    }
 
}

[源代码打包下载]




网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...