新闻案例
来源:互联网 发布:校园网络自助平台 编辑:程序博客网 时间:2024/05/23 00:26
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.edu.bzu.news"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity><!-- ATTENTION: This was auto-generated to add Google Play services to your project for App Indexing. See https://g.co/AppIndexing/AndroidStudio for more information. --> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> </application></manifest>
package cn.edu.bzu.news;import android.graphics.Color;import android.net.Uri;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.LinearLayout;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;import com.google.android.gms.appindexing.Action;import com.google.android.gms.appindexing.AppIndex;import com.google.android.gms.appindexing.Thing;import com.google.android.gms.common.api.GoogleApiClient;import com.loopj.android.http.AsyncHttpClient;import com.loopj.android.http.AsyncHttpResponseHandler;import com.loopj.android.http.RequestHandle;import com.loopj.android.image.SmartImageView;import org.apache.http.Header;import java.io.ByteArrayInputStream;import java.util.List;public class MainActivity extends AppCompatActivity { private ListView lv_news; private LinearLayout loading; private List<NewsInfo> newsInfos; /** * ATTENTION: This was auto-generated to implement the App Indexing API. * See https://g.co/AppIndexing/AndroidStudio for more information. */ private GoogleApiClient client; /** * ATTENTION: This was auto-generated to implement the App Indexing API. * See https://g.co/AppIndexing/AndroidStudio for more information. */ public Action getIndexApiAction() { Thing object = new Thing.Builder() .setName("Main Page") // TODO: Define a title for the content shown. // TODO: Make sure this auto-generated URL is correct. .setUrl(Uri.parse("http://[ENTER-YOUR-URL-HERE]")) .build(); return new Action.Builder(Action.TYPE_VIEW) .setObject(object) .setActionStatus(Action.STATUS_TYPE_COMPLETED) .build(); } @Override public void onStart() { super.onStart(); // ATTENTION: This was auto-generated to implement the App Indexing API. // See https://g.co/AppIndexing/AndroidStudio for more information. client.connect(); AppIndex.AppIndexApi.start(client, getIndexApiAction()); } @Override public void onStop() { super.onStop(); // ATTENTION: This was auto-generated to implement the App Indexing API. // See https://g.co/AppIndexing/AndroidStudio for more information. AppIndex.AppIndexApi.end(client, getIndexApiAction()); client.disconnect(); } private class NewsAdapter extends BaseAdapter { @Override public int getCount() { return newsInfos.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = View.inflate(MainActivity.this, R.layout.news_item, null); SmartImageView siv = (SmartImageView) view.findViewById(R.id.siv_icon); TextView tv_title = (TextView) view.findViewById(R.id.tv_title); TextView tv_description = (TextView) view.findViewById(R.id.tv_description); TextView tv_type = (TextView) view.findViewById(R.id.tv_type); NewsInfo newsInfo = newsInfos.get(position); siv.setImageUrl(newsInfo.getIconPath(), R.drawable.ab, R.drawable.ic_launcher); tv_title.setText(newsInfo.getTitle()); tv_description.setText(newsInfo.getdescroption()); int type = newsInfo.gettype(); switch (type) { case 1: tv_type.setText("评论:" + newsInfo.getComment()); break; case 2: tv_type.setTextColor(Color.RED); tv_type.setText("专题:"); break; case 3: tv_type.setTextColor(Color.BLUE); tv_type.setText("LIVE"); break; } return view; } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv_news = (ListView) findViewById(R.id.lv_news); loading = (LinearLayout) findViewById(R.id.loading); fillData2(); // ATTENTION: This was auto-generated to implement the App Indexing API. // See https://g.co/AppIndexing/AndroidStudio for more information. client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build(); } private void fillData2() { AsyncHttpClient asynHttpClient = new AsyncHttpClient(); RequestHandle requestHandle = asynHttpClient.get(getString(R.string.serverurl), new AsyncHttpResponseHandler() { public void onSuccess(String Content) { byte[] bytes = Content.getBytes(); ByteArrayInputStream bais = new ByteArrayInputStream(bytes); newsInfos = NewsInfoService.getNewsInfos(bais); if (newsInfos == null) { Toast.makeText(MainActivity.this, "解析失败",Toast.LENGTH_LONG).show(); } else { loading.setVisibility(View.INVISIBLE); lv_news.setAdapter(new NewsAdapter()); } } @Override public void onSuccess(int i, Header[] headers, byte[] bytes) { } @Override public void onFailure(int i, Header[] headers, byte[] bytes, Throwable throwable) { int error; Header[] content; Toast.makeText(MainActivity.this, "请求失败", Toast.LENGTH_LONG).show(); } }); }}
package cn.edu.bzu.news;import android.widget.TextView;/** * Created by 牵爱看海 on 2017/5/30. */public class NewsInfo { private String iconPath; private String title; private String description; private int type; private long comment; public String getIconPath() { return iconPath; } public void setIconPath(String iconPath) { this.iconPath = iconPath; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public int getType() { return type; } public void setType(int type) { this.type = type; } public long getComment() { return comment; } public void setComment(long comment) { this.comment = comment; } public int getdescroption() { this.description = description; return 0; } public int gettype() { this.type=type; return 0; }}
package cn.edu.bzu.news;import android.util.Xml;import org.xmlpull.v1.XmlPullParser;import java.io.InputStream;import java.util.ArrayList;import java.util.List;/** * Created by 牵爱看海 on 2017/5/30. */public class NewsInfoService { public static List<NewsInfo> getNewsInfos(InputStream is) { XmlPullParser parser = Xml.newPullParser(); try { parser.setInput(is,"utf-8"); int type =parser.getEventType(); List<NewsInfo> newsInfos=null; NewsInfo newsInfo=null; while (type!=XmlPullParser.END_DOCUMENT){ switch (type){ case XmlPullParser.START_TAG: if("news".equals(parser.getName())){ newsInfo= new NewsInfo(); }else if("newsInfo".equals(parser.getName())){ newsInfo=new NewsInfo(); }else if("icon".equals(parser.getName())){ String icon=parser.nextText(); newsInfo.setIconPath(icon); }else if("title".equals(parser.getName())){ String title=parser.nextText(); newsInfo.setTitle(title); }else if("content".equals(parser.getName())){ String decription=parser.nextText(); newsInfo.setDescription(decription); }else if("type".equals(parser.getName())){ String newstype=parser.nextText(); newsInfo.setType(Integer.parseInt(newstype)); }else if("comment".equals(parser.getName())){ String comment = parser.nextText(); newsInfo.setComment(Long.parseLong(comment)); } break; case XmlPullParser.END_TAG: if ("newsInfo".equals(parser.getName())){ newsInfos.add(newsInfo); newsInfo=null; } break; } type=parser.next(); } return newsInfos; } catch (Exception e) { e.printStackTrace(); } return null; }}
package cn.edu.bzu.news;import android.content.Context;import android.support.test.InstrumentationRegistry;import android.support.test.runner.AndroidJUnit4;import org.junit.Test;import org.junit.runner.RunWith;import static org.junit.Assert.*;/** * Instrumentation test, which will execute on an Android device. * * @see <a href="http://d.android.com/tools/testing">Testing documentation</a> */@RunWith(AndroidJUnit4.class)public class ExampleInstrumentedTest { @Test public void useAppContext() throws Exception { // Context of the app under test. Context appContext = InstrumentationRegistry.getTargetContext(); assertEquals("cn.edu.bzu.news", appContext.getPackageName()); }}
<?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" tools:context=".MainActivity" android:orientation="vertical"> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:id="@+id/loading" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" android:visibility="invisible"> <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="正在加载信息..." /> </LinearLayout> <ListView android:id="@+id/lv_news" android:layout_width="match_parent" android:layout_height="match_parent" /> </FrameLayout></LinearLayout>
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="65dp"> <com.loopj.android.image.SmartImageView android:id="@+id/siv_icon" android:layout_width="80dp" android:layout_height="60dp" android:scaleType="centerCrop" android:src="@mipmap/ic_launcher" android:layout_alignParentLeft="true" android:layout_alignParentStart="true"></com.loopj.android.image.SmartImageView> <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:layout_marginTop="10dp" android:layout_toRightOf="@id/siv_icon" android:ellipsize="end" android:maxLength="20" android:singleLine="true" android:text="我_标题" android:textColor="#000000" android:textSize="18sp" /> <TextView android:id="@+id/tv_description" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/tv_title" android:layout_marginLeft="5dp" android:layout_marginTop="5dp" android:layout_toRightOf="@id/siv_icon" android:ellipsize="end" android:maxLength="16" android:maxLines="1" android:text="我_描述" android:textColor="#99000000" android:textSize="14sp" /> <TextView android:id="@+id/tv_type" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_marginBottom="5dp" android:layout_marginRight="10dp" android:text="评论" android:textColor="#99000000" android:textSize="12sp" /></RelativeLayout>
<?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" tools:context=".MainActivity" android:orientation="vertical"> <newsInfo> <icon>http://172.16.25.13:8080/img/a.jpg</icon> <title>科技温暖世界</title> <content>进入一个更有爱的领域</content> <type>1</type> </newsInfo> <newsInfo> <icon>http://172.16.25.13:8080/img/a.jpg</icon> <title>《神武》</title> <content>新美术资源盘点,视觉新体验</content> <type>2</type> <comment>35</comment> </newsInfo> <newsInfo> <icon>http://172.16.25.13:8080/img/a.jpg</icon> <title>南北车正式公布合并</title> <content>南北车将于今日正式公布合并</content> <type>3</type> <comment>2</comment> </newsInfo> <newsInfo> <icon>http://172.16.25.13:8080/img/a.jpg</icon> <title>北京拟推医生电子注册</title> <content>突破多点执业“限制”</content> <type>1</type> <comment>25</comment> </newsInfo> <newsInfo> <icon>http://172.16.25.13:8080/img/a.jpg</icon> <title>风力发电进校园</title> <content>风力发电普进校园</content> <type>2</type> <comment>26</comment> </newsInfo> <newsInfo> <icon>http://172.16.25.13:8080/img/a.jpg</icon> <title>地球一小时</title> <content>地球熄灯一小时</content> <type>1</type> <comment>23</comment> </newsInfo></LinearLayout>
<?xml version="1.0" encoding="utf-8"?><resources> <color name="colorPrimary">#3F51B6</color> <color name="colorPrimaryDark">#393E9E</color> <color name="colorAccent">#FF40</color></resources>
<resources> <string name="app_name">News</string> <string name="serverurl" /></resources>
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style></resources>
阅读全文
0 0
- 新闻案例
- 新闻案例
- 新闻案例
- 新闻客户端案例开发
- 新闻客户端案例
- 案例--新闻客户端
- 简易新闻客户端案例
- 实现案例新闻客户端
- 新闻客户端案例
- 案例----新闻客户端
- 新闻客户端案例
- 案例-----新闻客户端
- 新闻客户端案例
- 简单新闻客户端案例
- 新闻客户端综合案例
- 案例—新闻客户端
- 新闻客户端案例
- 新闻客户端案例
- TCP慢启动、拥塞避免、快速重传、快速恢复
- 【坑爹微信】微信支付相关问题解决
- 欢迎使用CSDN-markdown编辑器
- centos 6.5安装使用 redis
- Java中的RTTI
- 新闻案例
- 静态查找
- Android 沉浸式状态栏
- PyMongo初级使用教程
- js 全屏显示
- HBuilder控制台集成命令提示符(终端/CMD)功能
- ospfj
- Mac使用mysql中出现ERROR 1045: Access denied for user: 'root@localhost' 以及密码过期解决方法
- 【Java面试】java基础篇