背单词App开发日记2
2015-07-19 13:32
465 查看
2015.07.17
今天主要学习了监听器捆绑和线程使用.分别实现了用按钮进行跳转和延时自动跳转这两个功能.还是蛮有成就感的!
下面分别记录一下学习成果:
1.按钮跳转控件----监听器捆绑
首先,当然是定义出一个按钮了,同时需要注册一个id
然后是在相应的Java文件里面声明变量并且找出他的ID以便后面的捆绑处理.
需要注意的一是一定要先findViewById,否则会找不到按钮;再有一个就是我在写的时候发生的错误----那个 setOnClickListener一直没办法通过,通过eclipse的提示修正后还是不行(运行之后就崩溃了...)经过多方查询之后才知道原来是包引用错了........其实原因是eclipse没有那么智能,他的第一条帮助提示让你引用的是android.content.DialogInterface.OnClickListener;但其实应该是android.view.View.OnClickListener(阿西/....).其他的没什么要说的,之后就可以通过开始页面的按钮来跳转到下一个控件了!哈哈
2.延时跳转控件----handler()线程实现
当然我希望我的app是那种打开开始图片过一会就自动跳转的那种.所以我又看了一点如何用handler进行实现---它的原理其实就是多线程执行任务,换句话就是通过一个任务队列来实现延时执行任务的功能,进一步的,还可以让消息的传送也经过队列(是另一个称为"消息队列"),这样就可以用多线程来完成我们希望并行执行的任务.所以还是有必要学习一下的.
这种办法主要用的就是handler()对象的postDelayed方法和Java语法里面的匿名内部类的方式.代码如下.
运行一下就可以看到延时跳转页面的效果了,好开森有木有!!
接下来开始搞最重要的部分----怎样实现单词库.我好头痛啊!!!!!根本不知道怎么办,互无头绪.....55555555想到的办法有用文件读写来实现或者用SQLite来做.然而问题来了:1)怎么样把单词存进去2)存档断点怎么设置3
)怎样让单词显示在控件里面.
一页一个,我又不能做5000个控件来搞这个........又问了问会一点的同学,他告诉我可以用AFINAL.我打算在接下来的日子里学一学AFINAL的知识,在进行下一步的打算.看来我之前想的还是太简单了.....
加油!!!!!
今天主要学习了监听器捆绑和线程使用.分别实现了用按钮进行跳转和延时自动跳转这两个功能.还是蛮有成就感的!
下面分别记录一下学习成果:
1.按钮跳转控件----监听器捆绑
首先,当然是定义出一个按钮了,同时需要注册一个id
<Button android:id="@+id/startButton" android:layout_width="1.5in" android:layout_height="0.5in" android:layout_marginTop="640sp" android:layout_centerHorizontal="true" android:text="@string/enter_settings" android:textSize="30sp" android:textStyle="italic" />这只是一个很简单的写有"Start"的开始按钮,不在多说.
然后是在相应的Java文件里面声明变量并且找出他的ID以便后面的捆绑处理.
<pre name="code" class="java">import android.app.Activity; import android.content.Intent; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity { private Button startButton=null;//声明一个按钮
<span> </span>//复写onCreate方法
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);//设定控件的定义文件 startButton=(Button)findViewById(R.id.startButton);//在R.java里面找出这个按钮对应的id startButton.setOnClickListener(new StartButtonListener());//设置一个监听器并进行捆绑 } class StartButtonListener implements OnClickListener { //复写onClick方法利用Intent实现控件的跳转 @Override public void onClick(View v) { // TODO Auto-generated method stub System.out.println("ssssss"); Intent intent=new Intent(); intent.setClass(MainActivity.this,SettingsActivity.class); MainActivity.this.startActivity(intent); } } }
需要注意的一是一定要先findViewById,否则会找不到按钮;再有一个就是我在写的时候发生的错误----那个 setOnClickListener一直没办法通过,通过eclipse的提示修正后还是不行(运行之后就崩溃了...)经过多方查询之后才知道原来是包引用错了........其实原因是eclipse没有那么智能,他的第一条帮助提示让你引用的是android.content.DialogInterface.OnClickListener;但其实应该是android.view.View.OnClickListener(阿西/....).其他的没什么要说的,之后就可以通过开始页面的按钮来跳转到下一个控件了!哈哈
2.延时跳转控件----handler()线程实现
当然我希望我的app是那种打开开始图片过一会就自动跳转的那种.所以我又看了一点如何用handler进行实现---它的原理其实就是多线程执行任务,换句话就是通过一个任务队列来实现延时执行任务的功能,进一步的,还可以让消息的传送也经过队列(是另一个称为"消息队列"),这样就可以用多线程来完成我们希望并行执行的任务.所以还是有必要学习一下的.
这种办法主要用的就是handler()对象的postDelayed方法和Java语法里面的匿名内部类的方式.代码如下.
import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; /*欢迎界面*/ public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /* 异常处理(既然是多线程,最好是加上异常处理,这里比较简单,所以我只是把它放到了注释里面) PackageManager pm = getPackageManager(); try { PackageInfo pi = pm.getPackageInfo("com.lyt.android", 0); TextView version_number = (TextView) findViewById(R.id.version); version_number.setText("Version " + pi.versionName); } catch (NameNotFoundException e) { e.printStackTrace(); }*/ new Handler().postDelayed(new Runnable(){//匿名内部类 <span style="white-space:pre"> </span>//复写run方法 @Override public void run() {//还是用intent进行控件跳转 Intent intent = new Intent(MainActivity.this,SettingsActivity.class); startActivity(intent); MainActivity.this.finish(); } }, 2000);//2000是延迟时间,单位是ms } }其实上一种用按钮的方式同样可以写成匿名内部类的形式,只是我没有写........
运行一下就可以看到延时跳转页面的效果了,好开森有木有!!
接下来开始搞最重要的部分----怎样实现单词库.我好头痛啊!!!!!根本不知道怎么办,互无头绪.....55555555想到的办法有用文件读写来实现或者用SQLite来做.然而问题来了:1)怎么样把单词存进去2)存档断点怎么设置3
)怎样让单词显示在控件里面.
一页一个,我又不能做5000个控件来搞这个........又问了问会一点的同学,他告诉我可以用AFINAL.我打算在接下来的日子里学一学AFINAL的知识,在进行下一步的打算.看来我之前想的还是太简单了.....
加油!!!!!
相关文章推荐
- swift2 方法
- QQ好友列表
- [amanhardikar] - webapptest
- Android屏幕适配全攻略(最权威的官方适配指导)
- [Unity3D]Unity3D自动寻路Demo
- 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记36 TableViewDatasource
- Android-它们的定义Notification
- [Unity3D]Unity3D官方案例SpaceShooter开发教程
- Android Day01-布局详解
- Android 在App中启动另一个App
- Android MaterialDesign相关全
- Android ListView 和 ScrollView 冲突问题
- Android webview js 调用java方法报错"Uncaught TypeError: Object [object Object] has no method xx
- 如何在未越狱的iOS 设备上安装 ipa
- 黑马程序员--Objective-C语言基础知识--三大特性
- Android 菜单(OptionMenu)大全 建立你自己的菜单
- Androidstudio安装问题
- iOS如何在一个图标上加上气泡,显示数字
- Android初学之路(二)
- iOS 国际化简单记录