Android | 日志 | 使用gank api開(kāi)發(fā)簡(jiǎn)單gank app

kGank

介紹

gank
提供的api制作的app

摸索著使用了MVP模式

功能

  • 提供gank網(wǎng)上的數(shù)據(jù)

  • 點(diǎn)擊單項(xiàng)可進(jìn)入對(duì)應(yīng)頁(yè)面

  • 收藏頁(yè)面

  • 搜索界面

未完成功能

  • 暫無(wú)

記錄

  1. listview的簡(jiǎn)單使用(棄)

                   // Creat a list of HashMap to get the datas shows on listview
                   ArrayList> mArrayList = new ArrayList>();
                   int mId = 0;
                   for(result mResult : fList_result){

                       HashMap map = new HashMap();
                       map.put("Desc",mResult.getDesc());
                       map.put("Date",mResult.getPublishedAt());
                       map.put("Who",mResult.getWho());
                       map.put("Id",(++mId) +"");
                       mArrayList.add(map);
                   }

                   
                   mSimpleAdapter = new SimpleAdapter(
                       getContext(),
                       mArrayList,
                       R.layout.listview_dataitem,
                       new String[] {"Desc","Date","Who","Id"},
                       new int[] {R.id.listview_dataitem_descText,
                           R.id.listview_dataitem_datetext,
                           R.id.listview_dataitem_whotext,
                           R.id.listview_dataitem_IdText});

                   mListView.setAdapter(mSimpleAdapter);

                   mListView.setOnItemClickListener(new OnItemClickListener(){

                           @Override
                           public void onItemClick(AdapterView p1, View p2, int p3, long p4)
                           {
                               LinearLayout l = (LinearLayout) p2;
                               TextView t = (TextView)l.findViewById(R.id.listview_dataitem_descText);

                               for(result resultb :fList_result){
                                   if(resultb.getDesc().equals(t.getText().toString()))
                                       openWebWindow(resultb.getUrl());
                               }


                               // TODO: Implement this method
                           }
                       });
                       
  1. sugar的簡(jiǎn)單使用

  2. okhttp3的簡(jiǎn)單使用

  3. DialogFragment

  4. recyclerview的簡(jiǎn)單使用

  • 導(dǎo)包:


 compile 'com.squareup.okhttp3:okhttp:3.6.0'

//用于轉(zhuǎn)化實(shí)例
 compile 'com.google.code.gson:gson:2.2.4'
    

  • 獲取Call

    @Override
    public Call getGankArticle(String type, int page)
    {

        //new a Call by using okhttp3 
        //and return it.
        
        String mBaseUrl = "http://gank.io/api/";

        final String NUM_PER_PAGE = "10";

        OkHttpClient mOkHttpClient = new OkHttpClient();
        Request.Builder builder = new Request.Builder().url(mBaseUrl +"data/" + type +"/" + NUM_PER_PAGE + "/" + page);

        final Request request =builder.build();

        Call mCall = mOkHttpClient.newCall(request);
        
        // TODO: Implement this method
        return mCall;
    }


  • 額..不知道怎么分



    @Override
    public void loadArticle(String type, int page)
    {
                
        Call mCall = mModelImpl.getGankArticle(type,page);
        mCall.enqueue(new Callback(){

                @Override
                public void onFailure(Call p1, IOException p2)
                {
                    
                    // TODO: Implement this method
                }

                @Override
                public void onResponse(Call p1, Response p2) throws IOException
                {
                    DataEntity mDE = new Gson().fromJson(p2.body().string(),DataEntity.class);
                    Log.i("test",""+mDE.getResults().size());
                    mView.addViews(mDE.getResults());
                    // TODO: Implement this method
                }
            });

  1. Navigation的簡(jiǎn)單使用

在activity 中實(shí)現(xiàn):


package com.kfdykme.view.navigationview;
import android.os.Bundle;
import android.support.design.widget.NavigationView;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.view.*;
import android.support.v4.view.*;
import android.support.v7.app.*;


public class Main extends AppCompatActivity
{

    private DrawerLayout mDrawerLayout;
    private NavigationView mNavigationView;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        
        setContentView(R.layout.main);

        mDrawerLayout = (DrawerLayout) findViewById(R.id.id_drawer_layout);
        mNavigationView = (NavigationView) findViewById(R.id.id_nv_menu);

        
        setupDrawerContent(mNavigationView);


    }

    private void setupDrawerContent(NavigationView navigationView)
    {
        navigationView.setNavigationItemSelectedListener(

            new NavigationView.OnNavigationItemSelectedListener()
            {

                @Override
                public boolean onNavigationItemSelected(MenuItem menuItem)
                {
                    menuItem.setChecked(true);
                    mDrawerLayout.closeDrawers();
                    return true;
                }
            });
    }

}

備注1

AIDE 無(wú)法使用引入了注解的庫(kù)
有機(jī)會(huì)弄明白原因并嘗試使用

greenDao & retrofit & maybe others need it

備注2

使用mvp模式和網(wǎng)絡(luò)請(qǐng)求時(shí),之前一直糾結(jié)于如何在model或presenter 中onResponse后再在得到返回后在view中刷新

后來(lái)發(fā)現(xiàn)其實(shí)可以返回一個(gè)call 然后在別處使用它

還是有點(diǎn)糾結(jié),難以說(shuō)清

備注3

mvp模式看了這個(gè)博客后感覺(jué)有點(diǎn)清晰起來(lái)了抖棘。

3.12

  1. 重寫(xiě)KGankMainActivity的onKeyDown()方法 :打開(kāi)WebDow時(shí)按返回鍵判斷goback益楼。

3.13

  1. Use SwipeRefreshLayout implements "Pull down refresh"
  2. Implements "Pull up load more" by rewriting RecyclerView's adapter . Not so good.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市问窃,隨后出現(xiàn)的幾起案子闺兢,更是在濱河造成了極大的恐慌犀暑,老刑警劉巖雇初,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拢肆,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡抵皱,警方通過(guò)查閱死者的電腦和手機(jī)善榛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)辩蛋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)呻畸,“玉大人,你說(shuō)我怎么就攤上這事悼院∩宋” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵据途,是天一觀(guān)的道長(zhǎng)绞愚。 經(jīng)常有香客問(wèn)我,道長(zhǎng)颖医,這世上最難降的妖魔是什么位衩? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮熔萧,結(jié)果婚禮上糖驴,老公的妹妹穿的比我還像新娘。我一直安慰自己佛致,他們只是感情好贮缕,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著俺榆,像睡著了一般感昼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上罐脊,一...
    開(kāi)封第一講書(shū)人閱讀 51,370評(píng)論 1 302
  • 那天定嗓,我揣著相機(jī)與錄音,去河邊找鬼萍桌。 笑死蜕乡,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的梗夸。 我是一名探鬼主播层玲,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了辛块?” 一聲冷哼從身側(cè)響起畔派,我...
    開(kāi)封第一講書(shū)人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎润绵,沒(méi)想到半個(gè)月后线椰,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡尘盼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年憨愉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片卿捎。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡配紫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出午阵,到底是詐尸還是另有隱情躺孝,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布底桂,位于F島的核電站植袍,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏籽懦。R本人自食惡果不足惜于个,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望暮顺。 院中可真熱鬧厅篓,春花似錦、人聲如沸拖云。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)宙项。三九已至乏苦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間尤筐,已是汗流浹背汇荐。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留盆繁,地道東北人掀淘。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像油昂,于是被迫代替她去往敵國(guó)和親革娄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子倾贰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,113評(píng)論 25 707
  • 內(nèi)容抽屜菜單ListViewWebViewSwitchButton按鈕點(diǎn)贊按鈕進(jìn)度條TabLayout圖標(biāo)下拉刷新...
    皇小弟閱讀 46,759評(píng)論 22 665
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)拦惋,斷路器匆浙,智...
    卡卡羅2017閱讀 134,656評(píng)論 18 139
  • 我希望躺到手術(shù)臺(tái)上言秸,胸被打開(kāi)讓別人看软能。我的好,我的壞举畸,我的異類(lèi)查排,我的虛榮,我的自私俱恶,你們都可以拿去看雹嗦。我們都是一樣...
    長(zhǎng)文共賞閱讀 262評(píng)論 0 3
  • 當(dāng)一個(gè)人心里真正有你的時(shí)候范舀,只要他一閑下來(lái)合是,就想你在干嘛,就會(huì)不自覺(jué)的發(fā)條信息問(wèn)問(wèn)你锭环。 愛(ài)情本應(yīng)該屬于兩個(gè)人的事情...
    Mr韜濤閱讀 438評(píng)論 0 1