Android(四)


拓展

  1. Logcat过滤输出信息
    1.1 打开Logcat窗口
    1.2 找左侧绿色加号,点开、
    1.3 在弹窗中取过滤的名字 filter name ,填入sysout
    1.4 在by log tag,添加查找标签,填入system.out,就会自动筛选出来由这个输出的东西
    1.5 如果不需要筛选,可以通过左侧的减号来删掉
  2. 找错
    2.1 查看Logcat,错误提示
    2.2 把有问题的部分注释掉一句一句的运行,看是否还会发生错误,来找到是哪个句子写错了
    2.3 通过在代码中间插入输出句子,在Logcat中查看,看哪个可以输出,截止到哪里,那么可能就是无法输出的地方代码问题
    2.4 整理自己的功能逻辑,查看问题
    2.5 Ctrl+函数名,看是否引用错误,用在界面跳转查看上
一.Activity组件的生命周期
  1. 新建生命周期的各个函数
    	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 这个界面在哪个界面,默认打开就是哪个界面
    		<intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
    
    1.2 DiaLog弹框(在配置文件中AndroidManifest.XML修改添加)
    		<activity
    			android:name="com.example.act.B"
    			android:theme="@android:style/Theme.DeviceDefault.Dialog"  //这里就是设置弹框
    			android:label="@string/title_activity_b" >
    		</activity>
    
  2. 页面跳转
    2.1 跳转到百度
    	  //该代码写在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.2 打开相机(XML中设置OnClick和上面的跳转到百度类似,Java文件中写如下)
    		public void openCamera(View v){
    			Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    			startActivityForResult(intent, 0);//startActivityForResult为开始活动申请,0表示状态
    		}
    
    2.3打开通讯录
    		public void toPeople(View v){
    			Intent intent=new Intent();
    			intent.setAction(Intent.ACTION_VIEW);
    			intent.setData(People.CONTENT_URI);
    			startActivity(intent);
    		}
    
  3. 页面跳转带数据
    3.1 单个数据传输
    		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.2 指定位置数据传输
    		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+"登录");//在标签中放入内容
    
    3.3 多行数据传输(关键字:Bundle)
    		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并安装

发布了72 篇原创文章 · 获赞 3 · 访问量 3565

猜你喜欢

转载自blog.csdn.net/id__39/article/details/104775476