视频网址: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这个整理代码的快捷键。