求瑞星2011网络版(企业)最新升级包或者用户ID_百度知道网红当道,越来越多的产品也随波开启了单口相声模式,一向严谨的苹果也不例外。虽然每...
iMessage 商店虽然拥有独立的体系,但它的体验仍然归属于 App Store,使用操作也几乎...
回首过去20年,游戏作为一种娱乐方式改变大家生活,在未来游戏将继续改变我们的娱乐体...
拆解之后,接下来爱搞事的外国人还要对iPhone 7进行各种虐机测试。
iPhone发售日,对果粉来说就像是一个节日。
我们也可以预见在未来一段日子了,各种对新设备的测试(虐机)视频将会陆续到来。
Plus的型号更受欢迎,这种情况还是首次出现。
iPhone 7 的最大挑战就是,如何说服老用户放弃旧 iPhone,然后下单购买新 iPhone。
近日,日本著名游戏开发商万代南梦宫(BANDAI NAMCO)在全球苹果商店中推出了其新作《...
在游戏开发商Kongregate所推出的卡牌对战新作《动画对决:卡片任务(Animation Throwd...
《有道语文达人》是网易有道词典出品的语文学习、古诗翻译、汉语词典软件。它能够让你...
外星人入侵地球的剧情早已不是什么陌生的题材了,关于地球会不会被入侵占领一直是一个...
来自宝岛台湾的游戏厂商硕辣椒(SO-CAYENNE)最近在 App Store 上架了一款全新的冒险...
近日,游戏开发商Boomzap在苹果商店当中推出了其新作《科艾斯亚的传奇(Legends of Ca...
《熊猫博士讲卫生》能够帮助孩子在四岁到五岁这样一个黄金时期养成良好的卫生习惯,从...
新版本的苹果 Smart Battery case 电池保护壳的电池容量将从旧版本的 1877 毫安时提升...
目前,虚拟现实革命正在进行,除了 Android 用户之外,iPhone 用户也能够参与其中。
毫无疑问 AirPods 是一款非常优秀的无线耳机,不过人们更加喜欢拿它身上的槽点来做文...
W1 芯片不仅有助于传输高品质音频,而且还带来了行业内最出色全自动的设置方案,以及...
遗憾的是苹果没有一并推出一款光滑的亮黑色基座,原来的深空灰色基座得到了保留。
AirPods任务是将数以亿计的有线耳机扫入历史的垃圾箱。走出这一步后,苹果站到了新的...
不过稍显遗憾的是,并未推出iPhone 7的版本。
或许这将是全球首款内置DAC(数字模拟转换器)和LAM模块(lightning audio module)的...
隐藏id升级成功什么情况?
注册时间 最后登录
在线时间2157 小时 UID
主题帖子人气
白苹果, 积分 1150, 距离下一级还需 350 积分
我有一同事,58同城联系到一个人出港版5s 10月的事了。让我和他一起去买,晚上我和他一起去的,当时验机查了一下序列号,看到机子蛮新的,卖家牵着一条大金毛& &我车门没关,金毛一嗖就爬进去了,卖手机的家伙当时还一个劲的道歉。 想想这人素质还不错 应该不会是坑就把钱付了 16g金色 之前开价2400 我们谈好面交2200
当场验机各功能正常 还用我的卡打了两个***。哎 lz大意 只看到appstore账号 让他解除了就走了。后来这机子用我同事的卡打***疯狂掉线 偶尔还自动关机。 时间功能更搞笑 只要手机不联网 就乱跳。一会快几个小时 一会慢几小时
准备刷机,居然看看到icloud账号开的 查找我的iphone是开的。马上联系卖家 他说id在他老婆那 明天发过来
第二天联系他 这货直接发一个 200块 我也是被逼的 要的不多 对不起
当时就懵了,神马情况?居然看走眼了? 这时候lz突然想到了一点,钱不能给 说不定这货也打不开密码,联系icloud邮箱那个qq 死活不加
后来几天这货不停骚扰 什么再不给钱我锁机了啊。 果断跟他说,你锁吧 我就当喂狗了
然后果然没锁过了 只是机子的各种问题依然存在
注册时间 最后登录
在线时间2157 小时 UID
主题帖子人气
lz没办法,看着同事的手机接***都成问题,就联系各渠道 问能否删除id让我刷个机子
搞了大半个月,求救无门,突然一朋友说可以试试,试了几天结果就是 可以隐藏id 但绝对不能升级。。
确实id隐藏了,同事拿着用啊用的 问题依旧。昨天突然跑过来说卡的受不了就升级了
我擦 拿过来一看 7.1.2变成了8.1.2 这货说升级成功但是软件都打不开了 让我帮忙弄一下。。
当时lz忙。就没下文了。突然想起这个事 和fy分享一下 看看是什么情况。我考虑要不要明天帮他shift刷机试试。。
注册时间 最后登录
在线时间2157 小时 UID
主题帖子人气
想到一种可能,原id锁主人把id密码改了这边就自动失效了呢?
注册时间 最后登录
在线时间2157 小时 UID
主题帖子人气
还一个奇葩问题,后来发现背面的序列号和机子里面看居然是不同的。。。lz玩机n年 塞班id05年注册。居然被坑的这么惨。。各位警示各位真的防人之心不可无 现在坏人太多了。。。
注册时间 最后登录
在线时间194 小时 UID
主题帖子人气
你明知道58水深,还让你朋友去试水,这样真的好么。
注册时间 最后登录
在线时间501 小时 UID
主题帖子人气
ota在线升级不会让你重新激活,试试刷机或者抹除恢复iphone绝对悲剧
注册时间 最后登录
在线时间1234 小时 UID
主题帖子人气
他机身序列号和背壳序列号不同,不是换壳就是改主板序列号的,这种骗子机器应该会越狱的,因为能伪装的更像,越狱的不可能OTA吧回5楼mpk008于5 小时前发表的: ota在线升级不会让你重新激活,试试刷机或者抹除恢复iphone绝对悲剧......
注册时间 最后登录
在线时间587 小时 UID
主题帖子人气
这机子确实奇葩……重新刷下啊,最好告诉我们机子现在的型号是多少
注册时间 最后登录
在线时间2157 小时 UID
主题帖子人气
拿到手的时候没有越狱& &还是我越狱的&&这就是个妖机啊…
注册时间 最后登录
在线时间173 小时 UID
主题帖子人气
你是怎么隐藏ID的回8楼哎哟美女于5 小时前发表的: 拿到手的时候没有越狱& &还是我越狱的&&这就是个妖机啊…......
威锋旗下产品
Hi~我是威威!
沪公网安备 29号 | 沪ICP备号-1
新三板上市公司威锋科技(836555)
增值电信业务经营许可证:
Powered by Discuz!新闻网络版
首先还是来把总体的编码流程来树梳理一下,按照这个顺序来编码可以使思路更加清晰。(1)创建两个View,一个listview一个item_view(2)根据view的id来找到listview(3)从数据库获得数据
一、---框架---
首先还是来把总体的编码流程来树梳理一下,按照这个顺序来编码可以使思路更加清晰。
(1)创建两个View,一个listview一个item_view
(2)根据view的id来找到listview
(3)从数据库获得数据
&1&创建一个包含News数据信息的bean,bean中包含image、title、url和content等
&2&有了news的bean就应该有操作bean的Utils,这里创建一个NewsUtils类
&3&NewsUtils的作用就是获取新闻数据的,里面主要有两个方法:getAllNewsForNetWork和getAllNewsForDatabase
&4&网络那个后面说,从数据库中得到首先要有数据库和他的操作类,创建NewsOpenHelper和NewsDaoUtils
&5&NewsOpenHelper是数据库的帮助类,NewsDaoUtils中定义增删改查的方法
&6&流程是NewsUtils.getAllNewsForDatabase()-&NewsDaoUtils.getNews()
(4)将数据传给item_view并做显示
&1&通过上面的步骤得到ArrayList类型的新闻数据,下面是在ListView中展示了
&2&ListView使用要通过一个Adapter类,我们定义一个NewsAdapter类并实现其四个覆写BaseAdapter的四个方法
&3&在NewsAdapter中的getView()中将我们定义好的item_view布局并将其转换成一个view,并根据面得到的数据来给view
的各个控件赋值
(5)从网络端获取数据,并将数据库中的数据更新
&1&上面也提到了,通过网络获取数据,在NewsUtils中定义getAllNewsForNewWork
&2&也就是通过网络访问服务器中GetNewsServlet,实现输入流和输出流的对接,当然这边是输入流了
&3&将得到的流通过StreamUtils.streamToString()转化成字符串
&4&因为数据是json格式的,所以需要先转化成json对象再进行解析,最终编程ArrayList
&5&注意在返回数据之前,先将数据库清空,然后将数据缓存到里边
&6&回到主函数,因为主线程中不能处理时间过长的时间,所以要建立一个子线程获取网络数据
&7&建立一个主线程来进行ListView的展示
(6)当有事件点击时的跳转
&1&当有点击事件时,跳转到news_url
(7)smartimageview 的原理
&1&自定义了一个MyImageview类继承了Imageview,添加三个构造方法
&2&添加一个setImageUrl方法接受一个图片url
&3&新建一个子线程去请求url获取图片资源
&4&将获取的图片Bitmap通过handler发送给主线程,主线程设置给当前view
&5&在布局中引用MyImageview,需要指定完成的包名路径。
二、---ListView布局---
Activity中就只有一个ListView就不展示了,下面是item_news_layout.xml 的代码
使用线性和相对布局相结合的方式了就行布局,包括标题、内容、图片和评论等
三、---获得数据库数据---
(1)创建一个包含News数据信息的bean,bean中包含image、title、url和content等
package com.iigt.Internews.
public class NewsBean {
public String news_
public String icon_
(2)有了news的bean就应该有操作bean的Utils,这里创建一个NewsUtils类
package com.iigt.Internews.
public class NewsUtils {
public static String newsPath_url = "http://115.25.200.156:8080/itheima74/servlet/GetNewsServlet";
//封装新闻的假数据到list中返回
public static ArrayList getAllNewsForNetWork(Context context)
//从数据库中获取上次缓存的新闻数据做listview的展示
public static ArrayList getAllNewsForDatabase(Context context)
(3)NewsUtils的作用就是获取新闻数据的,里面主要有两个方法:getAllNewsForNetWork和getAllNewsForDatabase
//从数据库中获取上次缓存的新闻数据做listview的展示
public static ArrayList getAllNewsForDatabase(Context context) {
return new NewsDaoUtils(context).getNews();
(4)网络那个后面说,从数据库中得到首先要有数据库和他的操作类,创建NewsOpenHelper和NewsDaoUtils
package com.iigt.Internews.
import android.content.C
import android.database.sqlite.SQLiteD
import android.database.sqlite.SQLiteDatabase.CursorF
import android.database.sqlite.SQLiteOpenH
public class NewsOpenHelper extends SQLiteOpenHelper {
public NewsOpenHelper(Context context) {
super(context, "heimanews1", null, 1);
public void onCreate(SQLiteDatabase db) {
newsJson.put("id", newsBean.getId());
newsJson.put("title", newsBean.getTitle());
newsJson.put("des", newsBean.getDes());
newsJson.put("icon_url", newsBean.getIcon_url());
newsJson.put("news_url", newsBean.getNews_url());
newsJson.put("type", newsBean.getType());
newsJson.put("time", newsBean.getTime());
newsJson.put("comment", newsBean.getComment());*/
db.execSQL("create table news (_id integer
,title varchar(200),des varchar(300),icon_url varchar(200),news_url varchar(200)," +
" type integer , time varchar(100),comment integer)");
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
(5)NewsOpenHelper是数据库的帮助类,NewsDaoUtils中定义增删改查的方法
package com.iigt.Internews.
import java.util.ArrayL
import com.iigt.Internews.bean.NewsB
import android.content.ContentV
import android.content.C
import android.database.C
import android.database.sqlite.SQLiteD
public class NewsDaoUtils {
private NewsOpenHelper newsOpenH
public NewsDaoUtils(Context context){
//创建一个帮助类对象
newsOpenHelper = new NewsOpenHelper(context);
//删除数据库中缓存的旧数据
public void delete(){
//通过帮助类对象获取一个数据库操作对象
SQLiteDatabase db = newsOpenHelper.getReadableDatabase();
db.delete("news", null, null);
db.close();
//向数据库中添加新闻数据
public void saveNews(ArrayList list){
//通过帮助类对象获取一个数据库操作对象
SQLiteDatabase db = newsOpenHelper.getReadableDatabase();
for (NewsBean newsBean : list) {
ContentValues values = new ContentValues();
values.put("_id", newsBean.id);
values.put("title", newsBean.title);
values.put("des", newsBean.des);
values.put("icon_url", newsBean.icon_url);
values.put("news_url", newsBean.news_url);
values.put("type", newsBean.type);
values.put("time", newsBean.time);
values.put("comment", ment);
db.insert("news", null, values);
db.close();
//从数据库中获取缓存的新闻数据
public ArrayList getNews(){
ArrayList list = new ArrayList();
//通过帮助类对象获取一个数据库操作对象
SQLiteDatabase db = newsOpenHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select * from news", null);//查询获取数据
if(cursor != null && cursor.getCount() & 0){
while(cursor.moveToNext()){
NewsBean newsBean = new NewsBean();
newsBean. id = cursor.getInt(0);
newsBean. title = cursor.getString(1);
newsBean. des = cursor.getString(2);
newsBean. icon_url = cursor.getString(3);
newsBean. news_url = cursor.getString(4);
type = cursor.getInt(5);
newsBean. time = cursor.getString(6);
comment = cursor.getInt(7);
list.add(newsBean);
db.close();
cursor.close();
其获取数据的流程是NewsUtils.getAllNewsForDatabase()-&NewsDaoUtils.getNews()
四、---数据控件显示---
(1)通过上面的步骤得到ArrayList类型的新闻数据,下面是在ListView中展示了
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mContext =
lv_news = (ListView) findViewById(R.id.lv_news);
//1.先去数据库中获取缓存的新闻数据展示到listview
ArrayList allnews_database = NewsUtils.getAllNewsForDatabase(mContext);
if(allnews_database !=null && allnews_database.size()&0){
//创建一个adapter设置给listview
NewsAdapter newsAdapter = new NewsAdapter(mContext, allnews_database);
lv_news.setAdapter(newsAdapter);
(2)ListView使用要通过一个Adapter类,我们定义一个NewsAdapter类并实现其四个覆写BaseAdapter的四个方法
package com.iigt.Internews.
import java.util.ArrayL
import com.iigt.Internews.R;
import com.iigt.Internews.bean.NewsB
import com.iigt.Internews.view.MyImageV
import android.content.C
import android.view.LayoutI
import android.view.V
import android.view.ViewG
import android.widget.BaseA
import android.widget.TextV
public class NewsAdapter extends BaseAdapter {
private ArrayList
//通过构造方法接受要显示的新闻数据集合
public NewsAdapter(Context context,ArrayList list){
this.list =
this.context =
public int getCount() {
return list.size();
public Object getItem(int position) {
return list.get(position);
public long getItemId(int position) {
public View getView(int position, View convertView, ViewGroup parent) {
View view =
//1.复用converView优化listview,创建一个view作为getview的返回值用来显示一个条目
if(convertView != null){
view = convertV
//context:上下文, resource:要转换成view对象的layout的id, root:将layout用root(ViewGroup)包一层作为codify的返回值,一般传null
view = View.inflate(context, R.layout.item_news_layout, null);//将一个布局文件转换成一个view对象
//通过LayoutInflater将布局转换成view对象
LayoutInflater.from(context).inflate(R.layout.item_news_layout, null);
//通过context获取系统服务得到一个LayoutInflater,通过LayoutInflater将一个布局转换为view对象
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = layoutInflater.inflate(R.layout.item_news_layout, null);
//2.获取view上的子控件对象
MyImageView item_img_icon = (MyImageView) view.findViewById(R.id.item_img_icon);
TextView item_tv_des = (TextView) view.findViewById(R.id.item_tv_des);
TextView item_tv_title = (TextView) view.findViewById(R.id.item_tv_title);
TextView item_tv_comment = (TextView) view.findViewById(R.id.item_tv_comment);
TextView item_tv_type = (TextView) view.findViewById(R.id.item_tv_type);
//3.获取postion位置条目对应的list集合中的新闻数据,Bean对象
NewsBean newsBean = list.get(position);
//4.将数据设置给这些子控件做显示
item_img_icon.setImageUrl(newsBean.icon_url);
item_tv_title.setText(newsBean.title);
item_tv_des.setText(newsBean.des);
item_tv_comment.setText("评论:"+ment);
//0 :头条 1 :娱乐 2.体育
switch (newsBean.type) {
item_tv_type.setText("头条");
item_tv_type.setText("娱乐 ");
item_tv_type.setText("体育");
在NewsAdapter中的getView()中将我们定义好的item_view布局并将其转换成一个view,并根据面得到的数据来给view
的各个控件赋值
五、---网络获取数据---
(1)上面也提到了,通过网络获取数据,在NewsUtils中定义getAllNewsForNewWork
public static String newsPath_url = "http://115.25.200.156:8080/itheima74/servlet/GetNewsServlet";
//封装新闻的假数据到list中返回
public static ArrayList getAllNewsForNetWork(Context context) {
ArrayList arrayList = new ArrayList();
//1.请求服务器获取新闻数据
//获取一个url对象,通过url对象得到一个urlconnnection对象
URL url = new URL(newsPath_url);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
//设置连接的方式和超时时间
connection.setRequestMethod("GET");
connection.setConnectTimeout(10*1000);
//获取请求响应码
int code = connection.getResponseCode();
if(code == 200){
//获取请求到的流信息
InputStream inputStream = connection.getInputStream();
//将流转换成字符串
String result = StreamUtils.streamToString(inputStream);
//2.解析获取的新闻数据到List集合中。
JSONObject root_json = new JSONObject(result);//将一个字符串封装成一个json对象。
JSONArray jsonArray = root_json.getJSONArray("newss");//获取root_json中的newss作为jsonArray对象
for (int i = 0 ;i & jsonArray.length();i++){//循环遍历jsonArray
JSONObject news_json = jsonArray.getJSONObject(i);//获取一条新闻的json
NewsBean newsBean = new NewsBean();
newsBean. id = news_json.getInt("id");
newsBean. comment = news_json.getInt("comment");//评论数
newsBean. type = news_json.getInt("type");//新闻的类型,0 :头条 1 :娱乐 2.体育
newsBean. time = news_json.getString("time");
newsBean. des = news_json.getString("des");
newsBean. title = news_json.getString("title");
newsBean. news_url = news_json.getString("news_url");
newsBean. icon_url = news_json.getString("icon_url");
arrayList.add(newsBean);
//3.清除数据库中旧的数据,将新的数据缓存到数据库中
new NewsDaoUtils(context).delete();
new NewsDaoUtils(context).saveNews(arrayList);
}catch (Exception e) {
e.printStackTrace();
return arrayL
(2)也就是通过网络访问服务器中GetNewsServlet,实现输入流和输出流的对接,当然这边是输入流了
package com.itheima.
import java.io.IOE
import java.sql.*;
import java.util.ArrayL
public class GetNewsServlet extends HttpServlet {
// 构造方法
public GetNewsServlet() {
// 摧毁这个servlet,不太懂
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ArrayList news = NewsDao.getNews();
JSONArray jsonArray = new JSONArray();
for (NewsBean newsBean : news) {
JSONObject newsJson = new JSONObject();
newsJson.put("id", newsBean.getId());
newsJson.put("title", newsBean.getTitle());
newsJson.put("des", newsBean.getDes());
newsJson.put("icon_url", newsBean.getIcon_url());
newsJson.put("news_url", newsBean.getNews_url());
newsJson.put("type", newsBean.getType());
newsJson.put("time", newsBean.getTime());
newsJson.put("comment", newsBean.getComment());
jsonArray.put(newsJson);
JSONObject allNewsJson = new JSONObject();
allNewsJson.put("newss", jsonArray);
response.getOutputStream().write(allNewsJson.toString().getBytes("gbk"));
}catch (Exception e) {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
public void init() throws ServletException {
(3)将得到的流通过StreamUtils.streamToString()转化成字符串
public class StreamUtils {
public static String streamToString(InputStream
String result ="";
//创建一个字节数组写入流
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int length = 0;
in.read(buffer)) !=-1) {
out.write(buffer, 0, length);
out.flush();
new String(out.toByteArray(),"gbk");
result = out.toString();//将字节流转换成string
out.close();
}catch (Exception e) {
e.printStackTrace();
因为数据是json格式的,所以需要先转化成json对象再进行解析,最终编程ArrayList
(5)注意在返回数据之前,先将数据库清空,然后将数据缓存到里边
//3.清除数据库中旧的数据,将新的数据缓存到数据库中
new NewsDaoUtils(context).delete();
new NewsDaoUtils(context).saveNews(arrayList);
(6)回到主函数,因为主线程中不能处理时间过长的时间,所以要建立一个子线程获取网络数据
//2.通过网络获取服务器上的新闻数据用list封装 ,获取网络数据需要在子线程中做
new Thread(new Runnable() {
public void run() {
//请求网络数据
ArrayList allNews = NewsUtils.getAllNewsForNetWork(mContext);
//通过handler将msg发送到主线程去更新Ui
Message msg = Message.obtain();
msg.obj = allN
handler.sendMessage(msg);
}).start();
(7)建立一个主线程来进行ListView的展示
private Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
ArrayList allNews = (ArrayList) msg.
if(allNews != null && allNews .size()&0)
//3.创建一个adapter设置给listview
NewsAdapter newsAdapter = new NewsAdapter(mContext, allNews);
lv_news.setAdapter(newsAdapter);
六、---点击事件---
点击事件处理函数
public void onItemClick(AdapterView parent, View view, int position,
long id) {
//需要获取条目上bean对象中url做跳转
NewsBean bean = (NewsBean) parent.getItemAtPosition(position);
String url = bean.news_
//跳转浏览器
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
startActivity(intent);
如下是自定义的从网络上获取图片的方法
public class MyImageView extends ImageView {
public MyImageView(Context context) {
super(context);
public MyImageView(Context context, AttributeSet attrs) {
super(context, attrs);
public MyImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
private Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
Bitmap bitmap = (Bitmap) msg.
MyImageView.this.setImageBitmap(bitmap);
public void setImageUrl(final String url_str){
new Thread(new Runnable() {
public void run() {
//获取url对应的图片资源,bitmap
URL url = new URL(url_str);
HttpURLConnection openConnection = (HttpURLConnection) url.openConnection();
openConnection.setRequestMethod("GET");
openConnection.setConnectTimeout(10*1000);
int code = openConnection.getResponseCode();
if(code == 200){
InputStream inputStream = openConnection.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
Message msg = Message.obtain();
handler.sendMessage(msg);
}catch (Exception e) {
e.printStackTrace();
}).start();
最后新闻的展示界面如下