• 第一阶段SCRUM冲刺


    团队组成:马苗苗,闫亮,田文静,刘瑞阳

    个人特点:

    闫亮:队长,虽然没有过硬的编码技术,但是善于与人相处交流,可以带领团队更好的完成任务。

    田文静:在团队中的优点是具有一定的编程基础,肯学习,有耐心,容易融入集体,性格开朗,为人正直。我非常高兴也非常荣幸的加入到这个大家庭中来,这里不仅为我提供了一个成长锻炼、展示自我的良好平台,也让我有机会认识更多的新同事、新朋友。

    刘瑞阳:编程能力虽然不强,但是团结友爱,开朗,做事认真。

    马苗苗:编程能力一般但乐于去钻研学习。

    我昨天完成了几个基本界面的大致展示,花了4个小时左右,没剩时间。

    遇到的问题基本就是,没有功能,思路不全,不知道设几个按钮才合适,能为以后的功能输写打好基础。

    今天的任务是完成激励语录的一个功能。

     

     

    package com.example.hp.app3;

    /*

    学会调用互联网API(公共的)

     */

     

    import android.os.Bundle;

    import android.os.Handler;

    import android.os.Message;

    import android.support.v7.app.ActionBarActivity;

    import android.util.Log;

    import android.view.View;

    import android.widget.TextView;

     

    import java.io.BufferedReader;

    import java.io.InputStream;

    import java.io.InputStreamReader;

    import java.net.HttpURLConnection;

    import java.net.URL;

     

    public class MainActivity extends ActionBarActivity implements View.OnClickListener {

        private  int GET_DATA_SUCCESS = 101;//获取信息成功的标志

        private TextView mTvShow;

        private BufferedReader bufferedreader;

        private InputStream inputstream;

        private StringBuilder stringBuilder;

        private HttpURLConnection connection;

     

        //多线程传输数据  Handler

        Handler mHandler = new Handler(new Handler.Callback() {

            @Override

            public boolean handleMessage(Message message) {

                if(message.what==GET_DATA_SUCCESS){

                 String data = message.getData().getString("data");

                    Log.i("MainActivity",data);

                    mTvShow.setText(data);

                }

                return false;

            }

        });

     

        @Override

        protected void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            setContentView(R.layout.activity_main);

     

            //初始化控件

            initUI();

            //初始化数据

            initData();

        }

     

        private void initUI() {

            //获取文本框

           mTvShow = (TextView) findViewById(R.id.tv_show);

            //获取按钮

            findViewById(R.id.btn).setOnClickListener(this);

        }

     

        @Override

        public void onClick(View view) {

            //初始化数据

            initData();

        }

     

        private void initData() {

            //请求网络(创建一个主线程,否则数据太多过不来)

            new Thread(new Runnable() {

     

                @Override

                public void run() {

                    //定义一个方法,从服务器获取数据。

                    String data = getDataFromServer();

                    //创建信息对象

                    Message message = Message.obtain();

                    Bundle bundle = new Bundle();

                    bundle.putString("data",data);

                    message.setData(bundle);

                    //设置一个标志:

                    message.what = GET_DATA_SUCCESS;

     

                    //向主线程发信息

                    mHandler.sendMessage(message);

                }

     

            }).start();

        }

        //从服务器获取数据

        private String getDataFromServer() {

            try{

                //1.创建一个URL

                URL url = new URL("https://v1.hitokoto.cn/?c=f&encode=text");

                //2.打开链接

                connection = (HttpURLConnection) url.openConnection();

                //3.判断并处理结果

                if(connection.getResponseCode()==200){

                    //获取链接的输入流

                  inputstream = connection.getInputStream();

     

                  //判断读取的数据

                    bufferedreader = new BufferedReader(new InputStreamReader(inputstream));

                    stringBuilder=new StringBuilder();

                    for(String line = "";(line=bufferedreader.readLine())!=null;){

                        stringBuilder.append(line);

                    }

                    return stringBuilder.toString();

                }

     

            }catch(Exception e){

                e.printStackTrace();

            }finally {

                try{

                   if(inputstream!=null)inputstream.close();

                    if(bufferedreader!=null)bufferedreader.close();

                    if(connection!=null)connection.disconnect();

                }catch(Exception e){

                    e.printStackTrace();

                }

            }

     

            return "";

     

        }

    }

     

     

    <?xml version="1.0" encoding="utf-8"?>

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"

        package="com.example.hp.app3">

     

        //需要添加:

       <uses-permission android:name="android.permission.INTERNET">

     

       </uses-permission>

     

        <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>

        </application>

     

    </manifest>

  • 相关阅读:
    数据库的ACID
    动态SQL (if , choose (when, otherwise) , trim (where, set) , set , foreach)
    接口 和xml 中的知识
    Mybatis简介 接口式编程
    批处理 编程式事务
    AOP实现日志打印 基于xml配置的AOP实现 切入点表达式
    1、使用注解配置bean @Controller @Service @Repository 2.基于xml的属性装配 3、context:include-filter指定扫描包时要包含的类 ,context:exclude-filter(不包含)
    数据库连接池简介,使用
    配置通过静态工厂方法创建的bean , 配置通过实例工厂方法创建的bean , 配置FactoryBean★
    SpringMVC 拦截器 异常
  • 原文地址:https://www.cnblogs.com/mxk123456/p/13085340.html
Copyright © 2020-2023  润新知