模拟新浪微博的随便看看栏目

2024-02-02 16:58

本文主要是介绍模拟新浪微博的随便看看栏目,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

做到如下图的效果:

首先对页面进行布局,在activity_sina_look.xml中的代码如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal" android:background="#FFFFFF"><ListView android:id="@+id/listView"android:layout_width="fill_parent"android:layout_height="fill_parent"></ListView>
</RelativeLayout>


在list_item.xml这个新建的xml中的代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal" ><!-- 左边图片部分 --><ImageViewandroid:id="@+id/photo"android:layout_width="48dp"android:layout_height="48dp" /><!-- 右边布局 --><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="vertical" ><!-- 右上方 --><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="horizontal" ><!-- 用户名 --><TextViewandroid:id="@+id/name"android:layout_width="wrap_content"android:layout_height="wrap_content" android:textColor="#000000"/><!-- 发布时间 --><TextViewandroid:id="@+id/time"android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="right" android:textColor="#000000"/></LinearLayout><!-- 右下方发布内容 --><TextViewandroid:id="@+id/content"android:layout_width="fill_parent"android:layout_height="wrap_content" android:textColor="#000000"/></LinearLayout></LinearLayout>

最后,再在主要的Activity(SinaLookActivity.java)中编写代码如下:

package com.bzu.sinalook.activity;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
import android.support.v4.app.NavUtils;public class SinaLookActivity extends Activity {private ListView listView;private List<Map<String, ?>> data;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_sina_look);listView = (ListView) this.findViewById(R.id.listView);data = getData();SimpleAdapter adapter = new SimpleAdapter(this, data,R.layout.list_item, new String[] { "photo", "name", "time","content" }, new int[] { R.id.photo, R.id.name,R.id.time, R.id.content });listView.setAdapter(adapter);//点击事件listView.setOnItemClickListener(new ListViewHandle());}/** 处理点击事件的方法*/private class ListViewHandle implements OnItemClickListener{public void onItemClick(AdapterView<?> adapter, View view, int position,long id) {Map<String, ?> item=data.get(position);Toast.makeText(getApplicationContext(),item.get("name").toString(), Toast.LENGTH_LONG).show();}}private List<Map<String, ?>> getData() {List<Map<String, ?>> data = new ArrayList<Map<String, ?>>();Map<String, Object> item = new HashMap<String, Object>();item.put("photo", R.drawable.p1);item.put("name", "仰望星空");item.put("time", "1分钟前");item.put("content", "好看!");data.add(item);item = new HashMap<String, Object>();item.put("photo", R.drawable.p2);item.put("name", "星星");item.put("time", "5分钟前");item.put("content", "今天真高兴!");data.add(item);item = new HashMap<String, Object>();item.put("photo", R.drawable.p3);item.put("name", "星空");item.put("time", "6分钟前");item.put("content", "电影好看!");data.add(item);item = new HashMap<String, Object>();item.put("photo", R.drawable.p4);item.put("name", "仰望");item.put("time", "17分钟前");item.put("content", "今天真高兴!");data.add(item);item = new HashMap<String, Object>();item.put("photo", R.drawable.p5);item.put("name", "仰望星空001");item.put("time", "18分钟前");item.put("content", "电影好看!");data.add(item);item = new HashMap<String, Object>();item.put("photo", R.drawable.p6);item.put("name", "仰望星空002");item.put("time", "19分钟前");item.put("content", "好漂亮!");data.add(item);item = new HashMap<String, Object>();item.put("photo", R.drawable.p7);item.put("name", "仰望大海");item.put("time", "22分钟前");item.put("content", "电视剧好看!");data.add(item);item = new HashMap<String, Object>();item.put("photo", R.drawable.p8);item.put("name", "够黯然才自然");item.put("time", "24分钟前");item.put("content", "章节好看!");data.add(item);item = new HashMap<String, Object>();item.put("photo", R.drawable.p9);item.put("name", "仰望星空006");item.put("time", "26分钟前");item.put("content", "你好看!");data.add(item);item = new HashMap<String, Object>();item.put("photo", R.drawable.p10);item.put("name", "仰望星空009");item.put("time", "29分钟前");item.put("content", "企鹅好看!");data.add(item);return data;}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.activity_sina_look, menu);return true;}}



 

这篇关于模拟新浪微博的随便看看栏目的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/671368

相关文章

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

usaco 1.2 Transformations(模拟)

我的做法就是一个一个情况枚举出来 注意计算公式: ( 变换后的矩阵记为C) 顺时针旋转90°:C[i] [j]=A[n-j-1] [i] (旋转180°和270° 可以多转几个九十度来推) 对称:C[i] [n-j-1]=A[i] [j] 代码有点长 。。。 /*ID: who jayLANG: C++TASK: transform*/#include<

hdu4431麻将模拟

给13张牌。问增加哪些牌可以胡牌。 胡牌有以下几种情况: 1、一个对子 + 4组 3个相同的牌或者顺子。 2、7个不同的对子。 3、13幺 贪心的思想: 对于某张牌>=3个,先减去3个相同,再组合顺子。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOExcepti

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟)

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟) 题目描述 给定一个链表,链表中的每个节点代表一个整数。链表中的整数由 0 分隔开,表示不同的区间。链表的开始和结束节点的值都为 0。任务是将每两个相邻的 0 之间的所有节点合并成一个节点,新节点的值为原区间内所有节点值的和。合并后,需要移除所有的 0,并返回修改后的链表头节点。 思路分析 初始化:创建一个虚拟头节点

每日一题|牛客竞赛|四舍五入|字符串+贪心+模拟

每日一题|四舍五入 四舍五入 心有猛虎,细嗅蔷薇。你好朋友,这里是锅巴的C\C++学习笔记,常言道,不积跬步无以至千里,希望有朝一日我们积累的滴水可以击穿顽石。 四舍五入 题目: 牛牛发明了一种新的四舍五入应用于整数,对个位四舍五入,规则如下 12345->12350 12399->12400 输入描述: 输入一个整数n(0<=n<=109 ) 输出描述: 输出一个整数

【算法专场】模拟(下)

目录 前言 38. 外观数列 算法分析 算法思路 算法代码 1419. 数青蛙 算法分析 算法思路 算法代码  2671. 频率跟踪器 算法分析 算法思路 算法代码 前言 在前面我们已经讲解了什么是模拟算法,这篇主要是讲解在leetcode上遇到的一些模拟题目~ 38. 外观数列 算法分析 这道题其实就是要将连续且相同的字符替换成字符重复的次数+

小技巧绕过Sina Visitor System(新浪访客系统)

0x00 前言 一直以来,爬虫与反爬虫技术都时刻进行着博弈,而新浪微博作为一个数据大户更是在反爬虫上不遗余力。常规手段如验证码、封IP等等相信很多人都见识过…… 当然确实有需要的话可以通过新浪开放平台提供的API进行数据采集,但是普通开发者的权限比较低,限制也比较多。所以如果只是做一些简单的功能还是爬虫比较方便~ 应该是今年的早些时候,新浪引入了一个Sina Visitor Syst

模拟实现vector中的常见接口

insert void insert(iterator pos, const T& x){if (_finish == _endofstorage){int n = pos - _start;size_t newcapacity = capacity() == 0 ? 2 : capacity() * 2;reserve(newcapacity);pos = _start + n;//防止迭代

PHP实现二叉树遍历(非递归方式,栈模拟实现)

二叉树定义是这样的:一棵非空的二叉树由根结点及左、右子树这三个基本部分组成,根据节点的访问位置不同有三种遍历方式: ① NLR:前序遍历(PreorderTraversal亦称(先序遍历)) ——访问结点的操作发生在遍历其左右子树之前。 ② LNR:中序遍历(InorderTraversal) ——访问结点的操作发生在遍历其左右子树之中(间)。 ③ LRN:后序遍历(PostorderT

1 模拟——67. 二进制求和

1 模拟 67. 二进制求和 给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 示例 1:输入:a = "11", b = "1"输出:"100"示例 2:输入:a = "1010", b = "1011"输出:"10101" 算法设计 可以从低位到高位(从后向前)计算,用一个变量carry记录进位,如果有字符没处理完或者有进位,则循环处理。两个字符串对