真正意义上第一个APP 可以用的 老黄历~~~

来源:互联网 发布:服务器php环境配置 编辑:程序博客网 时间:2024/04/29 07:34
说句实话 自学真的很累  学习真的很累 而且需要坚持不懈不断地学习 更累
有时候自己的压力很大  但是想一想在公司做的事情又觉得改变是必须的 
如果我花很多年在现在做的事情上 等我老了  我想我会后悔的
并不是趁着年轻所以才改变 我想如果是为了自己的未来 为了自己未来能过做自己喜欢的事情
改变就是必须了~

说了一堆感性的话  回归本题 还是show出我可爱的代码~~~
唉唉唉 现在竟然觉得用代码说话比和人说话要来的轻松
我是肿么了~~~
加油少年











package com.imooc.admin.lunarcalendar;

import android.app.Activity;
import android.content.Intent;
import android.content.res.AssetManager;
import android.graphics.Typeface;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.TextView;

import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Calendar;

/**
* Created by admin on 2016/4/4.
*/
public class OpenLoading extends Activity {

private TextView openText,coupletUp,coupletDown,myText;
final Calendar c = Calendar.getInstance();
int mainYear =c.get(Calendar.YEAR);//获取当前年份
int mainMonth =c.get(Calendar.MONTH);//获取当前的月份
int mainday =c.get(Calendar.DAY_OF_MONTH);//获取当前月份的日期号码;
boolean open =true;
String dateString = mainYear + "-" + (mainMonth +1) + "-" + mainday;//当前日期的需求字符串形式



@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//加载欢迎页面
setContentView(R.layout.login_layout);
openText = (TextView) findViewById(R.id.open_text);
coupletUp= (TextView) findViewById(R.id.textView1);
coupletDown= (TextView) findViewById(R.id.textView2);
myText= (TextView) findViewById(R.id.textView3);
AssetManager mgr = getAssets();//得到AssetManager
Typeface tf = Typeface.createFromAsset(mgr,"font/open.ttf");//根据路径得到Typeface
openText.setTypeface(tf);
coupletUp.setTypeface(tf);
coupletDown.setTypeface(tf);
myText.setTypeface(tf);
OpenWithHttpConnection(dateString);
}

Handler mhandler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what ==308040) {
Log.d("MainActivity","已接收");
String[] getdataOpen = (String[]) msg.obj;
if (open) {
open = false;
Intent intent = new Intent(OpenLoading.this, MainActivity.class);
Bundle bundle = new Bundle();
bundle.putStringArray("dateString_fromOpen", getdataOpen);
intent.putExtras(bundle);
startActivity(intent);
finish();
}
}
}
};

//appkey:92530afe8465b7f2d316a6c21ac614b7
private void OpenWithHttpConnection(final String dateString) {
new Thread(new Runnable() {
@Override
public void run() {
try {
URL url = new URL("http://v.juhe.cn/laohuangli/d?date=" +dateString + "&key=92530afe8465b7f2d316a6c21ac614b7");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(8000);
connection.setReadTimeout(8000);
InputStream in = connection.getInputStream();
//对获取到的输入流进行读取
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) !=null) {
response.append(line);
}
/*
截止到以上在 线程中获得了 返回的JSON信息response
使用时记得使用response.toString()
*/
//在另一个方法中开启新线程中处理获得的JOSN数据
handeleJOSN(response.toString());

} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();

}

/*
下面的方法中处理接收到的JSON数据

JSON返回示例:
{
"reason": "successed",
"result": {
"id": "1657",
"yangli": "2014-09-11",
"yinli": "甲午()年八月十八",
"wuxing": "井泉水 建执位",
"chongsha": "冲兔(己卯)煞东",
"baiji": "乙不栽植千株不长 酉不宴客醉坐颠狂",
"jishen": "官日 六仪 益後 月德合 除神 玉堂 鸣犬",
"yi": "祭祀 出行 扫舍 馀事勿取",
"xiongshen": "月建 小时 土府 月刑 厌对 招摇 五离",
"ji": "诸事不宜"
},
"error_code": 0
}
*/

private void handeleJOSN(String s) {
try {
JSONObject getData = new JSONObject(s);
String result = getData.getString("result");
JSONObject data = new JSONObject(result);
String yangli = data.getString("yangli");
String yinli = data.getString("yinli");
String wuxing = data.getString("wuxing");
String chongsha = data.getString("chongsha");
String baiji = data.getString("baiji");
String jishen = data.getString("jishen");
String yi = data.getString("yi");
String xiongshen = data.getString("xiongshen");
String ji = data.getString("ji");

Log.d("MainActivity", yangli);
Log.d("MainActivity", yinli);
Log.d("MainActivity", wuxing);
//把所有数据装载在一个数组里
String[] allDate = {yinli, wuxing, chongsha, baiji, jishen, yi, xiongshen, ji};
//然后把数组装载在message中传回去
Message messageOpen = new Message();
messageOpen.what = 308040;
messageOpen.obj = allDate;
mhandler.sendMessageDelayed(messageOpen,2000);
Log.d("MainActivity","已发送");
} catch (JSONException e) {
e.printStackTrace();
}
}


}


package com.imooc.admin.lunarcalendar;

import android.app.Activity;
import android.app.DatePickerDialog;
import android.content.res.AssetManager;
import android.graphics.Typeface;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.Toast;

import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;

public class MainActivity extends Activity {
    private TextView datetext_yinlitext_wuxingtext_chongsha,
            text_baijitext_jishentext_yitext_xiongshentext_ji,
            baiji_titlejishen_titleyi_titlexiongshen_titleji_title;
    final Calendar = Calendar.getInstance();
    int mainYear c.get(Calendar.YEAR);//获取当前年份
    int mainMonth c.get(Calendar.MONTH);//获取当前的月份
    int mainday c.get(Calendar.DAY_OF_MONTH);//获取当前月份的日期号码 ;
    boolean first true;
    String dateString mainYear "-" mainMonth "-" mainday;//当前日期的需求字符串形式
    Handler handler new Handler() {
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what) {
                case 12345:
                    String[] getData = (String[]) msg.obj;
                    text_yinli.setText("阴历+ getData[0]);
                    text_wuxing.setText("五行: " + getData[1]);
                    text_chongsha.setText("冲煞: " + getData[2]);
                    text_baiji.setText(getData[3]);
                    text_jishen.setText(getData[4]);
                    text_yi.setText(getData[5]);
                    text_xiongshen.setText(getData[6]);
                    text_ji.setText(getData[7]);
                    break;
                case 54321:
                    String[] getData0 = (String[]) msg.obj;
                    text_yinli.setText("阴历"+getData0[0]);
                    text_wuxing.setText("五行: " + getData0[1]);
                    text_chongsha.setText("冲煞: " + getData0[2]);
                    text_baiji.setText(getData0[3]);
                    text_jishen.setText(getData0[4]);
                    text_yi.setText(getData0[5]);
                    text_xiongshen.setText(getData0[6]);
                    text_ji.setText(getData0[7]);
                    break;
                default:
                    break;
            }

        }
    };


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.main);
        AssetManager mgr = getAssets();//得到AssetManager
        Typeface tf = Typeface.createFromAsset(mgr"font/open.ttf");//根据路径得到Typeface
        Typeface tf2 = Typeface.createFromAsset(mgr"font/aaa.ttf");
        if (first) {
            Log.d("MainActivity""已接收2");
            first false;
            Bundle bundle = this.getIntent().getExtras();
            String[] getFromOpen = bundle.getStringArray("dateString_fromOpen");
            Message messageGetFromOpen = new Message();
            messageGetFromOpen.what 54321;
            messageGetFromOpen.obj = getFromOpen;
            handler.sendMessage(messageGetFromOpen);
        }

        date = (TextView) findViewById(R.id.date);
        text_yinli = (TextView) findViewById(R.id.yinli);
        text_wuxing = (TextView) findViewById(R.id.wuxing);
        text_chongsha = (TextView) findViewById(R.id.chongsha);
        text_baiji = (TextView) findViewById(R.id.baiji);
        text_jishen = (TextView) findViewById(R.id.jishen);
        text_yi = (TextView) findViewById(R.id.yi);
        text_xiongshen = (TextView) findViewById(R.id.xiongshen);
        text_ji = (TextView) findViewById(R.id.ji);
        baiji_title = (TextView) findViewById(R.id.baiji_title);
        jishen_title = (TextView) findViewById(R.id.jishen_title);
        yi_title = (TextView) findViewById(R.id.yi_title);
        xiongshen_title = (TextView) findViewById(R.id.xiongshen_title);
        ji_title = (TextView) findViewById(R.id.ji_title);
        date.setTypeface(tf2);
        text_yinli.setTypeface(tf2);
        text_wuxing.setTypeface(tf2);
        text_chongsha.setTypeface(tf2);
        text_baiji.setTypeface(tf2);
        text_jishen.setTypeface(tf2);
        text_yi.setTypeface(tf2);
        text_xiongshen.setTypeface(tf2);
        text_ji.setTypeface(tf2);
        baiji_title.setTypeface(tf2);
        jishen_title.setTypeface(tf2);
        yi_title.setTypeface(tf2);
        xiongshen_title.setTypeface(tf2);
        ji_title.setTypeface(tf2);
        date.setTypeface(tf);
        date.setText(dateString);
    }


    // 日期选择对话框的 DateSet 事件监听器
    private DatePickerDialog.OnDateSetListener listener new DatePickerDialog.OnDateSetListener() { //
        @Override
        public void onDateSet(DatePicker arg0, int selectYear, int selectMonth, int selectDay) {
            dateString = selectYear + "-" + (selectMonth + 1) + "-" + selectDay;
            date.setText(dateString);
            OpenWithHttpConnection(dateString);
        }
    };

    //appkey:92530afe8465b7f2d316a6c21ac614b7
    private void OpenWithHttpConnection(final String dateString) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    URL url = new URL("http://v.juhe.cn/laohuangli/d?date=" dateString "&key=92530afe8465b7f2d316a6c21ac614b7");
                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                    connection.setRequestMethod("GET");
                    connection.setConnectTimeout(8000);
                    connection.setReadTimeout(8000);
                    InputStream in = connection.getInputStream();
                    //对获取到的输入流进行读取
                    BufferedReader reader = new BufferedReader(new InputStreamReader(in));
                    StringBuilder response = new StringBuilder();
                    String line;
                    while ((line = reader.readLine()) != null) {
                        response.append(line);
                    }
                    /*
                    截止到以上在 线程中获得了 返回的JSON信息 response
                    使用时记得使用response.toString()
                     */
                    //在另一个方法中开启新线程中处理获得的JOSN数据
                    handeleJOSN(response.toString());

               catch (MalformedURLException e) {
                    e.printStackTrace();
               catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }).start();

    }

    /*
    下面的方法中处理接收到的JSON数据

    JSON返回示例:
    {
    "reason": "successed",
    "result": {
        "id": "1657",
        "yangli": "2014-09-11",
        "yinli": "甲午()年八月十八",
        "wuxing": "井泉水 建执位",
        "chongsha": "冲兔(己卯)煞东",
        "baiji": "乙不栽植千株不长 酉不宴客醉坐颠狂",
        "jishen": "官日 六仪 益後 月德合 除神 玉堂 鸣犬",
        "yi": "祭祀 出行 扫舍 馀事勿取",
        "xiongshen": "月建 小时 土府 月刑 厌对 招摇 五离",
        "ji": "诸事不宜"
    },
    "error_code": 0
    }
     */

    private void handeleJOSN(String s) {
        try {
            JSONObject getData = new JSONObject(s);
            String result = getData.getString("result");
            JSONObject data = new JSONObject(result);
            String yangli = data.getString("yangli");
            String yinli = data.getString("yinli");
            String wuxing = data.getString("wuxing");
            String chongsha = data.getString("chongsha");
            String baiji = data.getString("baiji");
            String jishen = data.getString("jishen");
            String yi = data.getString("yi");
            String xiongshen = data.getString("xiongshen");
            String ji = data.getString("ji");

            Log.d("MainActivity"yangli);
            Log.d("MainActivity"yinli);
            Log.d("MainActivity"wuxing);
            //把所有数据装载在一个数组里
            String[] allDate = {yinliwuxingchongshabaijijishenyixiongshenji};
            //然后把数组装载在message中传回去
            Message message = new Message();
            message.what 12345;
            message.obj = allDate;
            handler.sendMessage(message);
       catch (JSONException e) {
            e.printStackTrace();
        }
    }

    //选择日期按键的触发事件:显示一个DatePickerDialog
    public void dateClick(View view) {
        switch (view.getId()) {
            case R.id.date:
                DatePickerDialog datePickerDialog = new DatePickerDialog(MainActivity.this, listener,
                        mainYearmainMonthmainday);
                datePickerDialog.show();
                break;
            default:
                break;
        }
    }

    /**
     * 菜单、返回键响应
     */
    @Override
    public boolean onKeyDown(int keyCodeKeyEvent event) {
        // TODO Auto-generated method stub
        if(keyCode == KeyEvent.KEYCODE_BACK)
        {
            exitBy2Click()//调用双击退出函数
        }
        return false;
    }
    /**
     * 双击退出函数
     */
    private static Boolean isExit false;

    private void exitBy2Click() {
        Timer tExit = null;
        if (isExit == false) {
            isExit true; // 准备退出
            Toast.makeText(this, "再按一次退出程序"Toast.LENGTH_SHORT).show();
            tExit = new Timer();
            tExit.schedule(new TimerTask() {
                @Override
                public void run() {
                    isExit false; // 取消退出
                }
            }2500)// 如果2.5秒钟内没有按下返回键,则启动定时器取消掉刚才执行的任务

       else {
            finish();
            System.exit(0);
        }
    }


}
0 0
原创粉丝点击