视频网址:http://www.imooc.com/learn/756
成功入坑Android Studio
1.实现主界面布局
2.json数据获取与解析
3.MPAndroidChart介绍
1.实现主界面布局
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.view.ViewPager android:id="@+id/vp_main" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v4.view.ViewPager> </RelativeLayout>
遇到的第一个问题:
android.support.v4.view.ViewPager
是什么?
经查找得知是用来显示左右滑动的界面的。
下面这个博客链接详细讲了ViewPager的使用方法,还有一些不错的代码练习。
http://blog.csdn.net/wangjinyu501/article/details/8169924
MainActivity.java
public class MainActivity extends AppCompatActivity { private ViewPager vpMain; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); vpMain= (ViewPager) findViewById(R.id.vp_main); initView(); } private void initView() { vpMain.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { return PieFragment.newInstance(position+""); } @Override public int getCount() { return 4;//返回4就是有4个界面 } }); } }
PieFragment.java
public class PieFragment extends Fragment { private static final String DATA_KEY ="piefragment_data_key"; private String mData; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle arguments = getArguments(); if (arguments != null) { mData=arguments.getString(DATA_KEY); } } @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { TextView textView=new TextView(getContext()); textView.setText(mData); return textView; } public static PieFragment newInstance(String data) { Bundle args = new Bundle(); args.putString(DATA_KEY,data); PieFragment fragment = new PieFragment(); fragment.setArguments(args); return fragment; } }
这些代码对我目前来讲确实比较难,以后遇得多了应该会理解。
哎,编译器不幸的报错了,但我感觉我的代码是没有问题的,几经周折后终于发现是Fragment的包引用错了,应该引用
import android.support.v4.app.Fragment;程序成功运行到手机上,android studio的界面很漂亮。
2.json数据获取与解析
获取:
MainActivity.java
private String mJson="[{\"date\":\"2016年5月\",\"obj\": [{\"title\":\"外卖\",\"value\":34}," + "{\"title\":\"娱乐\",\"value\":21}, {\"title\":\"其他\",\"value\":45}]}," + "{\"date\":\"2016年6月\",\"obj\": [{\"title\":\"外卖\",\"value\":32}," + "{\"title\":\"娱乐\",\"value\":22}, {\"title\":\"其他\",\"value\":42}]}," + "{\"date\":\"2016年7月\",\"obj\": [{\"title\":\"外卖\",\"value\":34}," + "{\"title\":\"娱乐\",\"value\":123}, {\"title\":\"其他\",\"value\":24}]}," + "{\"date\":\"2016年8月\",\"obj\": [{\"title\":\"外卖\",\"value\":145}," + "{\"title\":\"娱乐\",\"value\":123}, {\"title\":\"其他\",\"value\":124}]}]";
解析:
下载gson-2.2.4.jar,复制粘贴到libs文件夹中,右键gson-2.2.4.jar点击Add As Library选择OK即可。
新建MonthBean.java
{"date":"2016年5月","obj":[{"title":"外卖","value":34} */ public class MonthBean { public String date; public ArrayList<PieBean> obj; @Override public String toString() { return "MonthBean{" + "date='" + date + '\'' + ", obj=" + obj.toString() + '}'; } class PieBean { public String title; public int value; @Override public String toString() { return "PieBean{" + "title='" + title + '\'' + ", value=" + value + '}'; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public int getValue() { return value; } public void setValue(int value) { this.value = value; } } public String getDate() { return date; } public void setDate(String date) { this.date = date; } public ArrayList<PieBean> getObj() { return obj; } public void setObj(ArrayList<PieBean> obj) { this.obj = obj; } }get set toString快捷键右键选Generate。
MainActivity.java
public class MainActivity extends AppCompatActivity { private ArrayList<MonthBean> mData; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initData(); } private void initData() { Gson gson=new Gson(); mData=gson.fromJson(mJson,new TypeToken<ArrayList<MonthBean>>(){}.getType()); } private void initView() { vpMain.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { return PieFragment.newInstance(mData.get(position).toString()); } @Override public int getCount() { return mData.size(); } }); } }
成功运行
3.MPAndroidChart介绍
https://github.com/PhilJay/MPAndroidChart
用法:在Android Stidio中
Add the following to your project level build.gradle:
allprojects { repositories { jcenter() maven { url "https://jitpack.io" } } }
Add this to your app build.gradle
dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:24.2.1' testCompile 'junit:junit:4.12' compile files('libs/gson-2.2.4.jar') compile 'com.github.PhilJay:MPAndroidChart:v3.0.2' }
MPAndroidChart感觉特别不错,以后应多做上面的实践。
还有就是记住alt+ctrl+l这个整理代码的快捷键。
相关推荐
在这个年度消费账单的案例中,可能用到了这些库来创建条形图展示每月支出,或者用饼图显示各类消费的占比。 此外,"游戏开发"标签暗示了Python在游戏行业的应用。虽然Python不是游戏开发的首选语言,但它可以用于...
《VC++案例精编》是针对使用Microsoft Visual C++(简称VC++)开发应用程序的一份珍贵资源,包含多个实际项目案例,旨在帮助开发者提升在Windows平台上的编程技能。以下是四个核心案例的详细解读: 1. 酒店管理系统...
在Android Studio中开发一个记账本应用是一...总之,基于Android Studio的记账本项目涵盖了Android应用开发的多个方面,包括UI设计、数据存储、用户交互、数据分析和测试等,是一个全面了解和实践Android开发的好案例。
系统的功能可能包括但不限于:用户注册与登录、收支记录管理、预算设定、账单分类、图表展示(如饼图、柱状图)以直观呈现财务状况、定期提醒(例如信用卡还款、账单到期等)以及数据分析功能,帮助用户了解消费习惯...
4. **报表统计**:提供图表化的收支分析,比如饼图、柱状图,展示收入与支出的比例,以及不同类别的支出占比。 5. **财务规划**:可能具备未来收入预测和储蓄目标设定功能,辅助用户进行长期的财务规划。 6. **...
3. 报表分析:系统提供图表化的收支分析,如饼图、柱状图等,显示各项支出的占比,以及收入与支出的对比,使用户对财务状况有直观的理解。 4. 账户管理:用户可以创建多个虚拟账户,比如储蓄账户、信用卡账户等,...
系统可能采用了ECharts、Highcharts等图表库,实现消费数据的可视化展示,如饼图、柱状图、折线图等,帮助用户直观理解消费情况。 六、毕业设计价值 此项目作为毕业设计,不仅锻炼了学生的编程能力,还提升了他们...
这个项目是Android平台上的一个实战案例,对于正在学习Android开发或者Java编程的开发者来说,它提供了一个宝贵的实践机会。 【主要功能模块】 1. **登录/注册**:用户可以通过手机号或邮箱进行注册,设置密码,并...
总的来说,《Delphi家庭财务管理系统》是一个结合了Delphi技术与财务管理理念的实用项目,对于学习Delphi编程的学生来说,这是一个很好的实践案例,有助于提升他们的编程技能和项目经验。通过分析和理解这样的系统,...
4. 报表分析:生成图表展示收支情况,比如饼图、柱状图等,帮助用户直观理解财务状况。 5. 账户管理:管理多个账户,如储蓄账户、信用卡账户等,跟踪不同账户的余额。 6. 提醒功能:设置定期提醒,如还款日、账单日...
VB,全称为Visual Basic,是微软公司开发的一种可视化的编程工具,以其简单易学、功能强大而深受开发者喜爱。在本系统的设计中,VB起到了核心作用,为系统的用户界面和逻辑控制提供了基础。 该系统的主要功能可能...
"Money-Manager:金钱追踪小程序"是一个基于Java技术开发的应用,用于个人财务管理,帮助用户记录和分析他们的支出。这个小程序采用Java Swing作为...对于想要提升Java应用开发技能的人来说,这是一个很好的实践案例。
标题 "Budget_App-using-python" 暗示我们讨论的是一个使用 Python 编程语言构建的预算应用程序。...此外,这个项目也可以作为一个很好的学习案例,了解如何将 Python 用于软件开发,特别是财务管理和数据分析领域。