안 드 로 이 드 뉴스 클 라 이언 트 사례

9947 단어 Android
원본 다운로드 사이트:https://github.com/
다운로드 api 활용  SmartImage 
 
뉴스 클 라 이언 트
소개 하 다.
      1. UI 효 과 는 회사 에서 미술 관 이 그린 것 이다.
      2. 응 용 된 전송 데이터, 대여 인터페이스 정의
      3. xml 에 관 한 데 이 터 는 서버 개발 자가 일정한 기술 수단 을 통 해 돌아 온 것 입 니 다. Android 개발 자 에 게 우리 가 해 야 할 일 은 분석 입 니 다. 우리 가 관심 을 가 진 데 이 터 를 꺼 내 Android 컨트롤 에 보 여 주 는 것 입 니 다.
이루어지다
1.MainActivity
package activitytest.example.com.news;

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.ImageView;
import android.widget.ListView;
import android.widget.TextView;

import com.jit.lib.SmartImage;
import com.jit.lib.SmartImageView;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;

public class MainActivity extends AppCompatActivity {


    List newsList;
    ListView lv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //【1】    
        lv = findViewById(R.id.lv);
        //【2】  ListView        ,           
        initListData();

    }

    //  ListView   
    private void initListData() {
        new Thread() {
            @Override
            public void run() {
                try {
                    //【2】         http://192.168.11.86:8080/news.xml
                    String path = "http://192.168.11.86:8080/news.xml";
                    //【2.2】  URL            (  )
                    URL url = new URL(path);
                    //【2.3】  HttpURLConnection            
                    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                    //【2.4】    get  
                    conn.setRequestMethod("GET");
                    //【2.5】      
                    conn.setConnectTimeout(5000);
                    //【2.6】           
                    int code = conn.getResponseCode();
                    //【2.7】  code == 200      
                    if (code == 200) {
                        //【2.8】                     
                        InputStream in = conn.getInputStream();
                        //【2.9】  xml          
                        newsList = XmlParserUtils.parserXml(in);     //   ,            
                        //【3】  ui       listview 
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                lv.setAdapter(new MyAdapter());
                            }
                        });
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }.start();
    }

        //       
    private class MyAdapter extends BaseAdapter {

        @Override
        public int getCount() {
            return newsList.size();
        }

        @Override
        public Object getItem(int i) {
            return null;
        }

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

        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {

            View v;
            if (view == null) {
                v = View.inflate(MainActivity.this, R.layout.item, null);
            } else {
                v = view;
            }
            //【1】             
            SmartImageView iv_icon = v.findViewById(R.id.iv_icon);
            TextView tv_title = v.findViewById(R.id.tv_title);
            TextView tv_desc = v.findViewById(R.id.tv_desc);
            TextView tv_type = v.findViewById(R.id.tv_type);

            //【1.1】       
            String imageUrl = newsList.get(i).getImage();

            //  SmartImage
            iv_icon.setImageUrl(imageUrl);

            //【2】    
            tv_title.setText(newsList.get(i).getTitle());
            tv_desc.setText(newsList.get(i).getDescription());
            String typee = newsList.get(i).getType();
            String comment = newsList.get(i).getComment();
            int type = Integer.parseInt(typee);
            switch (type) {
                case 1:
                    tv_type.setText(comment + "  ");
                    break;
                case 2:
                    tv_type.setText("  ");
                    break;
                case 3:
                    tv_type.setText("  ");
                    break;
            }
            return v;
        }
    }
}

2.News
package activitytest.example.com.news;

public class News {

    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 String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getComment() {
        return comment;
    }

    public void setComment(String comment) {
        this.comment = comment;
    }

    private String title;
    private String description;
    private String image;
    private String type;
    private String comment;

}

 3.XmlParserUtils
package activitytest.example.com.news;

import android.util.Xml;

import org.xmlpull.v1.XmlPullParser;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

public class XmlParserUtils {

    //  xml     
    public static List parserXml(InputStream in) throws Exception{

        List newsLists = null;
        News news = null;

        //【1】  xml    
        XmlPullParser parser = Xml.newPullParser();
        //【2】           
        parser.setInput(in,"utf-8");
        //【3】         
        int type = parser.getEventType();
        //【4】       
        while (type!=XmlPullParser.END_DOCUMENT){

            //【5】                    
            switch (type){
                case XmlPullParser.START_TAG:   //       
                    //【6】              
                    if("channel".equals(parser.getName())){     //   channel  
                        //    list  
                        newsLists = new ArrayList();
                    }else if ("item".equals(parser.getName())){
                        news = new News();
                    }else if ("tetle".equals(parser.getName())){
                        news.setTitle(parser.nextText());
                    }else if ("description".equals(parser.getName())){
                        news.setDescription(parser.nextText());
                    }else if ("image".equals(parser.getName())){
                        news.setImage(parser.nextText());
                    }else if ("type".equals(parser.getName())){
                        news.setType(parser.nextText());
                    }else if ("comment".equals(parser.getName())){
                        news.setComment(parser.nextText());
                    }
                    break;
                case XmlPullParser.END_TAG:     //       
                    if ("item".equals(parser.getName())){
                        newsLists.add(news);    // javabean       
                    }
                    break;
            }

            //       
            type = parser.next();
        }
        return newsLists;
    }
}

4.activity_main.xml



    

    


5.item.xml



    
    
    
    


 

좋은 웹페이지 즐겨찾기