拓展:
- Logcat过滤输出信息
1.1 打开Logcat窗口
1.2 找左侧绿色加号,点开、
1.3 在弹窗中取过滤的名字 filter name ,填入sysout
1.4 在by log tag,添加查找标签,填入system.out,就会自动筛选出来由这个输出的东西
1.5 如果不需要筛选,可以通过左侧的减号来删掉 - 找错
2.1 查看Logcat,错误提示
2.2 把有问题的部分注释掉一句一句的运行,看是否还会发生错误,来找到是哪个句子写错了
2.3 通过在代码中间插入输出句子,在Logcat中查看,看哪个可以输出,截止到哪里,那么可能就是无法输出的地方代码问题
2.4 整理自己的功能逻辑,查看问题
2.5 Ctrl+函数名,看是否引用错误,用在界面跳转查看上
一.Activity组件的生命周期
- 新建生命周期的各个函数
public class MainActivity extends Activity{ //1.创建Activity @Override//可以告诉读代码的人,这是对它父类方法的重写,没有或者写错都会报错 protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);//继承父类 setContentView(R.layout.activity_main);//设置显示界面 System.out.println("A--1--onCreate"); } //2.正在启动Activity @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); System.out.println("A--2--onStart"); } //3.可交互Activity @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); System.out.println("A--3--onResume"); } //4.暂停当前界面(用于界面跳转) @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); System.out.println("A--4--onPause"); } //5.停止Activity @Override protected void onStop() { // TODO Auto-generated method stub super.onStop(); System.out.println("A--5--onStop"); } //6.重启界面 @Override protected void onRestart() { // TODO Auto-generated method stub super.onRestart(); System.out.println("A--6--onRestart"); } //7.销毁Activity @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); System.out.println("A--7--onDestroy"); } }
二.界面功能设置
- 配置界面
1.1 这个界面在哪个界面,默认打开就是哪个界面
1.2 DiaLog弹框(在配置文件中AndroidManifest.XML修改添加)<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
<activity android:name="com.example.act.B" android:theme="@android:style/Theme.DeviceDefault.Dialog" //这里就是设置弹框 android:label="@string/title_activity_b" > </activity>
- 页面跳转
2.1 跳转到百度
2.2 打开相机(XML中设置OnClick和上面的跳转到百度类似,Java文件中写如下)//该代码写在XML布局文件中 <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#0000ff" android:onClick="toBaidu" android:clickable="true" android:layout_gravity="center" android:text="跳转到百度" /> //再在Java文件中用函数来实现 public void toBaidu(View v){ Uri myuri=Uri.parse("http://www.baidu.com"); Intent intent=new Intent(Intent.ACTION_VIEW,myuri); startActivity(intent);
2.3打开通讯录public void openCamera(View v){ Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, 0);//startActivityForResult为开始活动申请,0表示状态 }
public void toPeople(View v){ Intent intent=new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(People.CONTENT_URI); startActivity(intent); }
- 页面跳转带数据
3.1 单个数据传输
3.2 指定位置数据传输public void toLogined(View v){ Intent intent=new Intent(); intent.putExtra("name", "熊大");//放单个数据,这里是用来传输字符串 intent.setClass(MainActivity.this, Logined.class); startActivity(intent); } //下面内容写在要跳转的界面的Java文件中的onCreate函数中 Intent intent=getIntent(); //因为上面有个放数据,所以对应的这里要有个获得数据 String name=intent.getStringExtra("name");//将数据保存到字符串中 Toast.makeText(getApplicationContext(), name, Toast.LENGTH_SHORT).show();
3.3 多行数据传输(关键字:Bundle)public void toLogined(View v){ EditText user=(EditText)findViewById(R.id.username);//找到指定位置 String username=user.getText().toString();//获取文本 Intent intent=new Intent(); intent.putExtra("name", username);//放界面中获取的指定位置的内容,,,前面参数为索引键,后面参数为键对应的值(值可以有多重类型,相应的在另一个界面的获取就有不同的获取类型) intent.setClass(MainActivity.this, Logined.class); startActivity(intent); } //下面内容写在要跳转的界面的Java文件中的onCreate函数中 Intent intent=getIntent();//接收 String name=intent.getStringExtra("name");//提取内容,与intent.putExtra("name", username);中的索引键名字需要一样 TextView welcome=(TextView)findViewById(R.id.welcome);//找到标签 welcome.setText("欢迎"+name+"登录");//在标签中放入内容
public void toLogined(View v){ EditText user=(EditText)findViewById(R.id.username); //这是第一个数据 String username=user.getText().toString();//获取文本 EditText argot=(EditText)findViewById(R.id.argot); //这是第二个数据 String argotText=argot.getText().toString(); Intent intent=new Intent(); //放多个数据 开始--- Bundle bd=new Bundle();//关键词 束,把多个数据放在里面,通过Bundle的形式传输,接收的时候也是通过Bundle接收 bd.putString("username", username);//可以放多行,当需要穿数字是,可以用putInt(); bd.putString("argotText", argotText); intent.putExtras(bd);//这里的传输变成了复数,因为要传多个数据 //放多个数据 结束--- intent.setClass(MainActivity.this, Logined.class); startActivity(intent);//启动活动 } //下面内容写在要跳转的界面的Java文件中的onCreate函数中 Intent intent=getIntent(); Bundle bd=intent.getExtras();//接收数据 String username=bd.getString("username"); String argotText=bd.getString("argotText"); TextView welcome=(TextView)findViewById(R.id.welcome);//找到标签 welcome.setText("欢迎"+username+"登录"+"他的密语是:"+argotText);//设置文本
三.将Android软件转到手机上并安装
打开文件workspace(当时最初设置的把代码保存到的文件夹)–找到想要安装的软件–打开文件夹中的bin文件–把.apk文件发送到QQ并安装