zoukankan      html  css  js  c++  java
  • 十天冲刺(第一阶段)

        本周将listview进行了几步学习首先是一个简单的listview的制作直接从class雷中获取

    如以下demo :

    这个是运用ResolveInfo类将将系统中存在的软件全部拿出来使用

    package com.eb.listviewdemo;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.ComponentName;
    import android.content.Context;
    import android.content.Intent;
    import android.content.pm.ResolveInfo;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    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 java.util.ArrayList;
    import java.util.List;
    
    public class MainActivity extends AppCompatActivity {
        ListView listView;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            listView=findViewById(R.id.app_listview);
            List<String> list=new ArrayList<>();
            list.add("qq");
            list.add("微信");
            list.add("慕课网");
            List<ResolveInfo> infos = getAppInfos();
            View view=getLayoutInflater().inflate(R.layout.xzc,null);
            listView.addHeaderView(view);
            listView.setAdapter(new Applistview(infos));
    
        }
        private List<ResolveInfo> getAppInfos() {
            Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
            mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
            return getPackageManager().queryIntentActivities(mainIntent, 0);
        }
    
        public class Applistview extends BaseAdapter{
    
            List<ResolveInfo>strings;
    
            public Applistview(List<ResolveInfo> strings) {
                this.strings = strings;
            }
    
            @Override
            public int getCount() {
                return strings.size();
            }
    
            @Override
            public Object getItem(int position) {
                return strings.get(position);
            }
    
            @Override
            public long getItemId(int position) {
                return position;
            }
    
            @Override
            public View getView(final int position, View convertView, ViewGroup parent) {
                viewholer viewholer=new viewholer();
                if (convertView==null)
                {   LayoutInflater layoutInflater= (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                convertView=layoutInflater.inflate(R.layout.list,null);
              viewholer.imageView=convertView.findViewById(R.id.app_list_image);
              viewholer.textView=convertView.findViewById(R.id.app_list_text);
                convertView.setTag(viewholer);
                }
                else {
                    viewholer= (MainActivity.viewholer) convertView.getTag();
                }
              viewholer.textView.setText(strings.get(position).activityInfo.loadLabel(getPackageManager()));
                viewholer.imageView.setImageDrawable(strings.get(position).activityInfo.loadIcon(getPackageManager()));
    
             convertView.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View v) {
    
    
                     String  package1=strings.get(position).activityInfo.packageName;
                     String classname=strings.get(position).activityInfo.name;
                     ComponentName componentName=new ComponentName(package1,classname);
                     Intent intent=new Intent();
                     intent.setComponent(componentName);
                     startActivity(intent);
                 }
             });
    
    
                return convertView;
            }
        }
    
        class  viewholer{
            ImageView imageView;
            TextView textView;
        }
    }
    

      结果展示我这个进行了拓展就是点击这个listView以后将会直接跳转到系统的app使用视频展示

    第二部是从结合之前所学的网络中的操作进行拓展直接从网络中获取数据放到listview中进行

    package com.eb.listviewdemo;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.util.Log;
    import android.widget.ListView;
    
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.util.ArrayList;
    import java.util.List;
    
    public class RequestActivity extends AppCompatActivity {
    
        private ListView listView;
        private String tag="RequestActivity";
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_request);
            listView = findViewById(R.id.app_listview);
    new requestAsytask().execute();
        }
        public class requestAsytask extends AsyncTask<Void,Void,String>
        {
            @Override
            protected void onPreExecute() {
                super.onPreExecute();
            }
    
    
    
            @Override
            protected String doInBackground(Void... voids) {
                String url="http://www.imooc.com/api/teacher?type=2&page=1";
    
                return request(url);
            }
    
            private String request(String urlString) {
                try {
                    URL url=new URL(urlString);
                    HttpURLConnection connection= (HttpURLConnection) url.openConnection();
                    connection.setConnectTimeout(30000);
                    connection.setRequestMethod("GET");
                    connection.connect();
                    int responsecode =connection.getResponseCode();
                    String responseMessage=connection.getResponseMessage();
                    Log.d(tag, "request: "+responsecode);
                    if(responsecode==HttpURLConnection.HTTP_OK)
                    {
                        InputStreamReader inputStreamReader=new InputStreamReader(connection.getInputStream());
                        BufferedReader bufferedReader=new BufferedReader(inputStreamReader);
                        StringBuilder stringBuilder=new StringBuilder();
                        String line;
                        while((line=bufferedReader.readLine())!=null)
                        {
                            stringBuilder.append(line);
                        }
                    return stringBuilder.toString();
                    }
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
    return null;
            }
    
    
            @Override
            protected void onPostExecute(String s) {
    
                super.onPostExecute(s);
    
                Log.d(tag, "onPostExecute: "+s);
                LessonRequest lessonRequest=new LessonRequest();
    
                try {
                    JSONObject jsonObject=new JSONObject(s);
                    lessonRequest.setMessage((String) jsonObject.get("msg"));
                    lessonRequest.setStatus((Integer) jsonObject.get("status"));
                    List<LessonInfo>lessonInfos=new ArrayList<>();
                    JSONArray jsonArray=jsonObject.getJSONArray("data");
                    for (int i = 0; i <jsonArray.length() ; i++) {
                        LessonInfo lessonInfo=new LessonInfo();
                        JSONObject jsonObject1=jsonArray.getJSONObject(i);
                        lessonInfo.setMname((String) jsonObject1.get("name"));
                        lessonInfos.add(lessonInfo);
    
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                listView.setAdapter(new RequestAdapter(lessonRequest.getLessonInfos(),RequestActivity.this));
    
    
            }
        }
    }
    

      最后一个是进行了模仿微信聊天的界面

    package com.eb.listviewdemo;
    
    public class ChatMessage {
        public ChatMessage(int myID, int friendID, String name, String date, String content, String time, String avatarUrl, boolean isComeMessage) {
            this.myID = myID;
            this.friendID = friendID;
            this.name = name;
            this.date = date;
            this.content = content;
            this.time = time;
            this.avatarUrl = avatarUrl;
            this.isComeMessage = isComeMessage;
        }
    
        private int myID;
    
        private int friendID;
    
        private String name;
    
        private String date;
    
        private String content;
    
        private String time;
    
        private String avatarUrl;
    
        private boolean isComeMessage = true;
    
    
        public String getAvatarUrl() {
            return avatarUrl;
        }
    
        public void setAvatarUrl(String avatarUrl) {
            this.avatarUrl = avatarUrl;
        }
    
        public String getTime() {
            return time;
        }
    
        public void setTime(String time) {
            this.time = time;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getDate() {
            return date;
        }
    
        public void setDate(String date) {
            this.date = date;
        }
    
        public String getContent() {
            return content;
        }
    
        public void setContent(String content) {
            this.content = content;
        }
    
        public boolean getMsgType() {
            return isComeMessage;
        }
    
        public void setMsgType(boolean isComMsg) {
            isComeMessage = isComMsg;
        }
    
        public ChatMessage() {
        }
    
        public int getMyID() {
            return myID;
        }
    
        public void setMyID(int myID) {
            this.myID = myID;
        }
    
        public int getFriendID() {
            return friendID;
        }
    
        public void setFriendID(int friendID) {
            this.friendID = friendID;
        }
    
        public boolean isComeMessage() {
            return isComeMessage;
        }
    
        public void setComeMessage(boolean isComMeg) {
            this.isComeMessage = isComMeg;
        }
    }
    

      下边是结果展示:

  • 相关阅读:
    简单学习tar命令
    方向
    简单使用ubuntu
    双网卡同时上内外网
    emacs学习中
    IE8的开发者工具
    emacs编辑html
    推荐一款数据恢复软件EasyRecovery
    慢慢的乐趣
    关于一个汽车调度的排车问题
  • 原文地址:https://www.cnblogs.com/guziteng1/p/12550619.html
Copyright © 2011-2022 走看看