Android学习笔记(四)

news2024/11/28 16:38:49

案例一:图片获得焦点事件

MainActivity

package com.example.onfocuschagelistenerdemo;

import java.util.Iterator;

import android.os.Bundle;

import android.app.Activity;

import android.view.View;

import android.view.View.OnFocusChangeListener;

import android.widget.ImageButton;

import android.widget.TextView;

public class MainActivity extends Activity implements OnFocusChangeListener{

         //焦点事件

 private TextView show ;

 ImageButton [] imageButtons = new ImageButton[2];

         @Override

         protected void onCreate(Bundle savedInstanceState) {

                   super.onCreate(savedInstanceState);

                   setContentView(R.layout.activity_main);

           show =(TextView)findViewById(R.id.show);        

        

         imageButtons[0] =(ImageButton)this.findViewById(R.id.Imgshow1);

         imageButtons[1]= (ImageButton)this.findViewById(R.id.imgshow2);

         imageButtons[0].setOnFocusChangeListener(this);

         imageButtons[1].setOnFocusChangeListener(this);

        

         /*

          * for (ImageButton imagebutton : imageButtons) {

          *     imagebutton.setOnFocusChangeListener(this);

          * }

          *for (int i = 0; i < imageViews.length; i++) {

          *       //普通循环

          *    }

          *  for (Iterator iterator = collection.iterator(); iterator.hasNext();) {

          *     type type = (type) iterator.next();

          *     //遍历  针对于Collection 集合

          * }

          * **/

         }

         @Override

         public void onFocusChange(View v, boolean hasFocus) {

                   // TODO Auto-generated method stub

                   if(v.getId()==R.id.Imgshow1){

                            this.show.setText("你选中了羊");

                   }else if(v.getId()==R.id.imgshow2){

                   this.show.setText("你选中的是够");

                   }

         }

}

Activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="vertical" >

<LinearLayout

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:orientation="horizontal"

    >

    <ImageButton

        android:id="@+id/Imgshow1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:focusableInTouchMode="true"

        android:src="@drawable/png1"        />

 <!--android:focusableInTouchMode="true" 组件在进入触摸模式是否可以获得焦点 -->

    <ImageButton

        android:id="@+id/imgshow2"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:focusableInTouchMode="true"

        android:src="@drawable/png2"

        />

</LinearLayout>

<TextView

    android:id="@+id/show"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    />

</LinearLayout>

效果图

案例二:焦点事件的验证

MainActivity

package com.example.onfocuschangelinstenerdemo2;

import android.view.View.OnFocusChangeListener;

public class MainActivity extends Activity {

  private EditText  ed1;

  private  TextView  show ;

         @Override

         protected void onCreate(Bundle savedInstanceState) {

                   super.onCreate(savedInstanceState);

                   setContentView(R.layout.activity_main);

                   show=(TextView)findViewById(R.id.show);

                   ed1=(EditText)findViewById(R.id.et1);

                   ed1.setOnFocusChangeListener(new OnFocusChangeListenerText());

         }

         class  OnFocusChangeListenerText  implements OnFocusChangeListener{

                   @Override

                   public void onFocusChange(View v, boolean hasFocus) {

                            // TODO Auto-generated method stub

                            if(v.getId()==MainActivity.this.ed1.getId()){

                                     if(hasFocus){

                                                

                                              MainActivity.this.show.setText("文本输入获得焦点的组件是ed1");

                                     }else {

                                               MainActivity.this.show.setText("你ed1中输入的是合法");

                                     }

                                    

                            }else{

                                     if(hasFocus){

                                                

                                               MainActivity.this.show.setText("文本输入获得焦点的组件是ed2");

                                     }else {

                                               MainActivity.this.show.setText("你ed2中输入的是合法");

                                     }

                            }

                           

                   }

                  

         }

}

Activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="vertical" >

    <EditText

        android:id="@+id/et1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="请输入内容"

        />

    <EditText

        android:id="@+id/ed2"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="请输入内容"

        />

  <TextView

      android:id="@+id/show"

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      />

</LinearLayout>

SharedPreferencs

Android  操作系统提供五种存储方式 , SharedPreference ,文件存储,SQLite数据存储,ConnectionProvider存储,网络存储。

SharedPreferencs保存数据

package com.example.gdsharepreferfacedemo;

public class MainActivity extends Activity {

         //SharedPreferences  文件保存

          private static final String FILENAME ="gangdan";//文件名称

         @Override

         protected void onCreate(Bundle savedInstanceState) {

                   super.onCreate(savedInstanceState);

                   setContentView(R.layout.activity_main);

         SharedPreferences share =super.getSharedPreferences(FILENAME, Activity.MODE_PRIVATE);

         //指定文件的名字和编辑的模式

                   SharedPreferences.Editor edit =share.edit();//获得edit()接口

                     edit.putString("gqy", "guoqingyu");//保存字符串类型;

                     edit.putInt("年龄", 18);//保存整型

                     edit.commit();//提交

         }

        

}

SharedPerferences 获取数据

package com.example.hxsharedpreference;

public class OtherActivity extends  Activity {

         private   TextView  msgName, msgAge;

  private   static   final  String  FILENAME="xuesheng";

         @Override

         protected void onCreate(Bundle savedInstanceState) {

                   // TODO Auto-generated method stub

                   super.onCreate(savedInstanceState);

                   setContentView(R.layout.other);

                   msgName=(TextView)findViewById(R.id.msgName);

                   msgAge=(TextView)findViewById(R.id.msgAge);

                   SharedPreferences  sharedPreferences  =

                                     getSharedPreferences(FILENAME, Activity.MODE_PRIVATE);

msgName.setText(sharedPreferences.getString("Name", "没有此用户"));

  int age=  sharedPreferences.getInt("Age", 0);

                   String msg=  Integer.toString(age);

                   msgAge.setText(msg );     

                    

                   }

         }

注:TextView.SetText()这能设置String类型

 把整形转化成String类型两种常用方式

Int i=10;

String msg=  Integer.toString(i);

String  xx = String.valueOf(1);

File存储

FileOutStream(向文件写数据)

package com.example.hxfile;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.PrintStream;

public class MainActivity extends Activity {

private   static   final  String  FILENAME="file.txt";

         @Override

         protected void onCreate(Bundle savedInstanceState) {

                   super.onCreate(savedInstanceState);

                   setContentView(R.layout.activity_main);

                   FileOutputStream  out=null;

                   try {

                            out =openFileOutput(FILENAME, Activity.MODE_PRIVATE);

                           

                   } catch (FileNotFoundException e) {

                            // TODO Auto-generated catch block

                            e.printStackTrace();

                   }

                   PrintStream output= new PrintStream(out);

                     output.print("北京中软国际");

                     output.print("哈尔滨学院");

                    

                    

         }

 

        

}

FileInputStream(从文件中读取数据)

package com.example.hxfile;

public class OtherActivity extends Activity {

private  TextView showmsg =null;

private static  final  String  FILENAME="file.txt";

   @Override

   protected void onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);

      setContentView(R.layout.activity_other);

     

      showmsg=(TextView)findViewById(R.id.msg);

      FileInputStream  input=null;

      try {

        input=openFileInput(FILENAME);

      } catch (FileNotFoundException e) {

        // TODO Auto-generated catch block

        e.printStackTrace();

      }

      Scanner  scanner  = new Scanner(input);

      while(scanner.hasNext()){

        showmsg.append(scanner.next()+"\n");

      } 

   }

}

JSON

JSON 常用的几个对象 JSONObject  ,JSONArray(), JSONStringer和JSONException

Json数据格式

Json对象是一个无序的“名称/值”对的集合

如1{“name”:“郭庆雨”,

“age”:18}

如2 {“syudent“ [

{ “name”:”郭庆雨” ,“age“:100}

{ “ name”:”张三”,”age”:100}

]   }

JSONObject   allData =  new  JSONObject();

            allData.put(“name“,”郭庆雨“)

//用put 方法(Key,value)形式添加和Map集合是一样的

            allData.toString();

//转化成JSONObject对象转化成String 类型

//JSONObject 存储是一个对象

实例一:举例说明什么是JSONObject

JSONObject  alljsonnew  JSONObject();

              try {

              alljson.put("person", "郭庆雨");

              System.out.println(alljson.toString());

           } catch (JSONException e) {

              // TODO Auto-generated catch block

              e.printStackTrace();

           }

   }

结果 {person,郭庆雨}

实例二举例说明什么是JSONObject和JSONArray

String  data []={"郭庆雨","18","北京"};

      JSONObject  alljson =  new  JSONObject();

      JSONArray   sing  = new JSONArray();

            for(int x=0;x<data.length;x++){

              JSONObject  msg  =  new JSONObject();

                  try {

                 msg.put("name",data[x] );

                

              } catch (JSONException e) {

                 // TODO Auto-generated catch block

                 e.printStackTrace();

              }

                  sing.put(msg);

              

            }

            try {

           alljson.put("url", sing);

        } catch (JSONException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

        }

            System.out.println(alljson);

结果:{"person":[{"name":"郭庆雨"},{"name":"文章"},{"name":"同大卫"}]}

实例三:开发常用实例

一个Json工具包 JsonTooles  一个 实体类工具包Person  一个JSON服务包JsonServices  一个Activity包jsonActivity

JsonTooles  包

public class JsonTooles {

   public    static String createJsonString (String key  ,Object object){

      //解析其他的Object 类型的数据 除了List内含有对象的数据

      JSONObject  allDataString  =  new JSONObject();

            try {

           allDataString.put(key, object);

        } catch (JSONException e) {

            // TODO Auto-generated catch block

           e.printStackTrace();

        }

      return allDataString.toString();

     

   }

public   String  createJsonList(String key  ,List<Person> list) {

   //获取List内部是一个对象

   JSONObject  allData = new  JSONObject();

    JSONArray   sing= new JSONArray();

    Person  person=null;

     for(int x=0;x<list.size();x++){

      person =list.get(x);

      JSONObject msg = new  JSONObject();

        try {

        msg.put("name", person.getName());

          msg.put("age", person.getAge());

           msg.put("address", person.getAddress());

               sing.put(msg);

            allData.put(key, sing)  ; 

      } catch (JSONException e) {

        // TODO Auto-generated catch block

        e.printStackTrace();

      }

     }

   return allData.toString();

}

}

JSON 后台解析

MainActivity

public class MainActivity extends Activity {

private   Button preson,presons,listString ,listMap;

private  static   final  String  TAG ="MainActivity";

         @Override

         protected void onCreate(Bundle savedInstanceState) {

                   super.onCreate(savedInstanceState);

                  setContentView(R.layout.activity_main);

                   preson= (Button)findViewById(R.id.person);

                   //获取文本服务器的personJson

                   preson.setOnClickListener(new OnPersonListenner());

                  

         }

class OnPersonListenner implements  OnClickListener{

         @Override

         public void onClick(View v) {

                   // TODO Auto-generated method stub

                   new  Thread(){      

                            public void run() {

                   HttpTooles  httpTooles = new HttpTooles();

                   String  jsonString=httpTooles.getJsonContent("http://192.168.1.108:8080/jsonProject2/Action?type=person");

                   JsonTooles  jsonTooles = new JsonTooles();

                    Person person=   jsonTooles.getPerson(jsonString);

                      

                   //System.out.println(str);

                    System.out.println(person.getAddress());

                    System.out.println(person.getAge());

                    System.out.println(person.getName());

                    Log.i(TAG, person.toString());

                            };

                   }.start();

                  

                   }

        

}

}

HttpTooles

public class HttpTooles {

         public HttpTooles() {

                   super();

                   // TODO Auto-generated constructor stub

         }

         public  static  String  getJsonContent(String  urlpath){

                   String  str=null;

                  try {

                            URL  url  = new URL(urlpath);

HttpURLConnection  httpURLConnection = (HttpURLConnection)url.openConnection();

  httpURLConnection.setConnectTimeout(3000);

  httpURLConnection.setRequestMethod("GET");

  //httpURLConnection.getContentEncoding();

  httpURLConnection.setDoInput(true);//允许读服务器内容

   int   code =httpURLConnection.getResponseCode();

   if(code==200){

            //当这个状态码是200的时候说明服务器状态已经准备好了 可以获得一个流

          InputStream in=  httpURLConnection.getInputStream();

          BufferedReader buf =

new BufferedReader(new InputStreamReader(new BufferedInputStream(in)));

          str =buf.readLine();

   }

                   

                   } catch (MalformedURLException e) {

                            // TODO Auto-generated catch block

                            e.printStackTrace();

                   }catch(IOException e){

                            e.printStackTrace();

                   }

                   return str;

                  

         }

        

}

JsonTooles

public class JsonTooles {

         public JsonTooles() {

                   super();

                   // TODO Auto-generated constructor stub

         }

public  static  Person  getPerson(String jsonString){

         Person  person  = new Person();

         try {

                   JSONObject  jsonperson =  new JSONObject(jsonString);

                   JSONObject  personObject  = jsonperson.getJSONObject("person");

                   person.setAddress(personObject.getString("address"));

                   person.setAge(personObject.getInt("age"));

                   person.setName(personObject.getString("name"));

         } catch (JSONException e) {

                   // TODO Auto-generated catch block

                   e.printStackTrace();

         }

         return person; 

        

}

}

实体类工具包Person

public class Person {

   private   String  name ;

   private    int  age  ;

   private    String  address;

   public Person() {

      super();

      // TODO Auto-generated constructor stub

   }

   public Person(String name, int age, String address) {

      this.name = name;

      this.age = age;

      this.address = address;

   }

   public String getName() {

      return name;

   }

   public void setName(String name) {

      this.name = name;

   }

   public int getAge() {

      return age;

   }

   public void setAge(int age) {

      this.age = age;

   }

   public String getAddress() {

      return address;

   }

   public void setAddress(String address) {

      this.address = address;

   }

   @Override

   public String toString() {

      return "Person [name=" + name + ", age=" + age + ", address=" + address

           + "]";

   }

}

JSON服务包JsonServices

public class JsonService {

   public JsonService() {

   }

  

public   Person  getPerson(){

   //含有一个对象

   Person  person  =  new  Person("郭庆雨", 18,"北京");

   return person;

  

}

public   List <Person> getListperson(){

   //含有多个对象的List集合

   List<Person>  list  =  new  ArrayList<Person>();

   Person  person  =  new  Person("郭庆雨", 18,"北京");

   Person  person1  =  new  Person("赵薇", 18,"南京");

   Person  person2  =  new  Person("文章", 18,"天津");

   list.add(person);

   list.add(person1);

   list.add(person2);

   return list;

  

}

public  List <String >getListString(){

   //普通的List集合

   List<String> list = new ArrayList<String>();

   list.add("北京");

   list.add("上海");

   list.add("南京");

   return list;

  

}

public List<Map<String ,Object>> getListMaps(){

   //list集合的Map集合

   List <Map<String ,Object>> list = new ArrayList<Map<String,Object>>();

   Map<String,Object> map= new HashMap<String,Object>();

   map.put("地址", "北京");

   Map<String,Object> map2= new HashMap<String,Object>();

   map2.put("地址", "北京");

   list.add(map);

   list.add(map2);

   return list;

  

}

}

Activity包jsonActivity

public class MainActivity extends Activity {

   @Override

   protected void onCreate(Bundle savedInstanceState) {

     super.onCreate(savedInstanceState);

     setContentView(R.layout.activity_main);

     JsonService  service  = new JsonService();

     List <Person> list=service.getListperson();

     JsonTooles  jsontooles =  new JsonTooles();

   String  str=  jsontooles.createJsonString("persons",list);

   System.out.println(str);

       }

   @Override

   public boolean onCreateOptionsMenu(Menu menu) {

     // Inflate the menu; this adds items to the action bar if it is present.

     getMenuInflater().inflate(R.menu.main, menu);

     return true;

   }

}

Intent

认识Intent

 Intent传值

Intent值的回调

Intent深入

打开网页

Activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="vertical" >

    <Button

        android:id="@+id/mybut"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="打开网页" />

</LinearLayout>

MainActivity

package com.example.intentdemo2;

import android.net.Uri;

import android.os.Bundle;

import android.app.Activity;

import android.content.Intent;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

public class MainActivity extends Activity {

private  Button but ;

         @Override

         protected void onCreate(Bundle savedInstanceState) {

                   super.onCreate(savedInstanceState);

                   setContentView(R.layout.activity_main);

                   but=(Button)findViewById(R.id.mybut);

                   but.setOnClickListener(new OnClickListenerImp());

         }

class  OnClickListenerImp  implements OnClickListener{

         @Override

         public void onClick(View v) {

                   // TODO Auto-generated method stub

                   Uri uri = Uri.parse("http://www.baidu.com");

                   Intent  intent = new Intent();

                   intent.setAction(Intent.ACTION_VIEW);

                   intent.setData(uri);

                   MainActivity.this.startActivity(intent);

         }

        

}

        

}

Intent打电话

案例一:调用拨号键
MainActivity

package com.example.intentdemo4;

import android.net.Uri;

import android.os.Bundle;

import android.app.Activity;

import android.content.Intent;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

public class MainActivity extends Activity {

private  Button  but;

private  EditText tel;

         @Override

         protected void onCreate(Bundle savedInstanceState) {

                   super.onCreate(savedInstanceState);

                   setContentView(R.layout.activity_main);

                   but=(Button)findViewById(R.id.myBut);

                   tel=(EditText)findViewById(R.id.tel);

                   but.setOnClickListener(new OnClickListener() {

                           

                            @Override

                            public void onClick(View v) {

                                     // TODO Auto-generated method stub

                   String telStr=             MainActivity.this.tel.getText().toString();

                                     Uri  uri=Uri.parse("tel:"+telStr);

                                     Intent intent= new Intent();

                                     intent.setAction(Intent.ACTION_DIAL);

                                     intent.setData(uri);

                                     MainActivity.this.startActivity(intent);

                                    

                            }

                   });

         }

        

}

Activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="vertical" >

    <EditText

        android:id="@+id/tel"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

       >

        <requestFocus />

    </EditText>

    <Button

        android:id="@+id/myBut"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="打电话" />

</LinearLayout>

AndroidManifest.xml

<uses-permission android:name="android.permission.CALL_PHONE"/>

案例二:直接打电话
MainActivity

package com.example.intentdemo4;

import android.net.Uri;

import android.os.Bundle;

import android.app.Activity;

import android.content.Intent;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

public class MainActivity extends Activity {

private  Button  but;

private  EditText tel;

         @Override

         protected void onCreate(Bundle savedInstanceState) {

                   super.onCreate(savedInstanceState);

                   setContentView(R.layout.activity_main);

                   but=(Button)findViewById(R.id.myBut);

                   tel=(EditText)findViewById(R.id.tel);

                   but.setOnClickListener(new OnClickListener() {

                           

                            @Override

                            public void onClick(View v) {

                                     // TODO Auto-generated method stub

                   String telStr=             MainActivity.this.tel.getText().toString();

                                     Uri  uri=Uri.parse("tel:"+telStr);

                                     Intent intent= new Intent();

                                     intent.setAction(Intent.ACTION_CALL);

                                     intent.setData(uri);

                                     MainActivity.this.startActivity(intent);

                                    

                            }

                   });

         }

        

}

Activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="vertical" >

    <EditText

        android:id="@+id/tel"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

       >

        <requestFocus />

    </EditText>

    <Button

        android:id="@+id/myBut"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="直接打电话" />

</LinearLayout>

AndroidManifest.xml

<uses-permission android:name="android.permission.CALL_PHONE"/>

Activity生命周期

什么是Activity

  • Activity  实际上是一个人机的交互程序,用于存放各个显示控件,也是Android的基本组成部分
  • 每一个继承了android.app.Activity的java类都将成为一个Activity程序。
  • 创建Activity的要点

创建Activity的要点

  • 1,一个Activity就是一个类,并且这个类要继承Activity
  • 2,需要复写Oncreate 方法
  • 3,每一个Activity都需要在AndroidManifest.xml 文件当中进行配置
  • 4,为Activity添加必要的控件

Activit七个生命周期函数

  • Public  class  Activity  extends  ApplicationContext{
  • Protected  void  onCreate  ()
  • 一个不可以关闭的方法;当Activity程序启动之后会首次调用此方法。
  • Protected  void  onStart  ()
  • 一个不可以关闭的方法;当用户第一次显示界面时调用此方法。
  •  
  • Protected  void  onRestart ()
  • 一个不可以关闭的方法;当Activity 程序停止后再次显示给用户是调用。
  •  
  • Protected  void  onResume  ()
  • 一个不可以关闭的方法;当获得用户焦点时候调用此方法
  •  
  • Protected  void  onPause  ()
  • 一个可以关闭的方法;当启动其他Activity程序时调用此方法用于进行数据的提交,动画处理等操作
  •  
  •  
  • Protected  void  onStop  ()
  • 一个可以关闭的方法;当一个Activity程序完全不可见时调用此方法,此时并不会销毁Activity程序
  •  
  •  
  • Protected  void  onDestroy  ()
  • 一个可以关闭的方法;程序被销毁时调用,当调用finish()方法或系统资源不够用时将调用此方法。
  •  
  • }

Activity流程图

案例一:

Mainactivity

package com.example.gdactivity2;

import android.os.Bundle;

import android.app.Activity;

import android.content.Intent;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

public class MainActivity extends Activity {

private Button  start;

         @Override

         protected void onCreate(Bundle savedInstanceState) {

                   super.onCreate(savedInstanceState);

                   setContentView(R.layout.activity_main);

                   System.out.println("FriestActivity------->onCreate()");

                   /*

                    * 第一次创建时候 加载整个组件*/

                  

                   start=(Button)findViewById(R.id.starOtherActivity);

                   start.setOnClickListener(new  ButttonClick());

         }

class  ButttonClick  implements  OnClickListener{

         @Override

         public void onClick(View v) {

                   // TODO Auto-generated method stub

                   Intent  intent  = new Intent();

                    intent.setClass(MainActivity.this,OtherActivity.class);

                    MainActivity.this.startActivity(intent);

         }

        

}

         @Override

         protected void onDestroy() {

                   // TODO Auto-generated method stub

                   System.out.println("FriestActivity------->onDestroy()");

                   super.onDestroy();

                   /*

                    * 当调用finish()方法或系统资源不够用时将调用此方法**/

         }

         @Override

         protected void onPause() {

                   // TODO Auto-generated method stub

                   System.out.println("FriestActivity------->onPause()");

                   /*

                    * 暂停当前方法

                    * **/

                   super.onPause();

         }

         @Override

         protected void onRestart() {

                   // TODO Auto-generated method stub

                   System.out.println("FriestActivity------->onRestart()");

                   super.onRestart();

                   /*

                    * 当Activity重新被调用时候用此方法**/

         }

         @Override

         protected void onResume() {

                   // TODO Auto-generated method stub

                   System.out.println("FriestActivity------->onResume() ");

                   /*

                    * 当用户在点击或是使用组件时候获取焦点

                    *

                    * **/

                   super.onResume();

         }

         @Override

         protected void onStart() {

                   // TODO Auto-generated method stub

                   System.out.println("FriestActivity------->onStart() ");

                   /*

                    * 当用户第一次看见模拟器出现组件时候被调用

                    * **/

                   super.onStart();

         }

         @Override

         protected void onStop() {

                   // TODO Auto-generated method stub

                   System.out.println("FriestActivity------->onStop()");

                   /*当Activity全部不可见状态是 调用此方法

                    * **/

                   super.onStop();

         }

        

}

OtherActivity

package com.example.gdactivity2;

import android.app.Activity;

import android.os.Bundle;

public class OtherActivity extends  Activity {

         @Override

         protected void onCreate(Bundle savedInstanceState) {

                   // TODO Auto-generated method stub

                   super.onCreate(savedInstanceState);

                   setContentView(R.layout.other);

                   System.out.println("OtherActivity------->onCreate()");

         }

         @Override

         protected void onDestroy() {

                   // TODO Auto-generated method stub

                   super.onDestroy();

                   System.out.println("OtherActivity------->onDestroy()");

         }

         @Override

         protected void onPause() {

                   // TODO Auto-generated method stub

                   super.onPause();

                   System.out.println("OtherActivity------->onPause()");

         }

         @Override

         protected void onRestart() {

                   // TODO Auto-generated method stub

                   super.onRestart();

                   System.out.println("OtherActivity------->onRestart()");

         }

         @Override

         protected void onResume() {

                   // TODO Auto-generated method stub

                   super.onResume();

                   System.out.println("OtherActivity------->onResume()");

         }

         @Override

         protected void onStart() {

                   // TODO Auto-generated method stub

                   super.onStart();

                   System.out.println("OtherActivity------->onStart()");

         }

         @Override

         protected void onStop() {

                   // TODO Auto-generated method stub

                   super.onStop();

                   System.out.println("OtherActivity------->onStop()");

         }

        

}

AndroidManifest

<application

        android:allowBackup="true"

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" >

        <activity

            android:name="com.example.gdactivity4.MainActivity"

            android:label="@string/app_name" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

        <activity

            android:name="com.example.gdactivity4.SecodActivity"

            android:label="@string/title_activity_secod"

            android:theme="@android:style/Theme.Dialog"

             >

            <!--@android:style/Theme.Dialog" 定义第二个Activity为敞口模式  -->

        </activity>

    </application>

运行本节案例一

  • 操作一 :首先启动程序
  • 结果一: 启动了FirstActivity的onCreate onStart onResume
  • 操作二:点击启动第二个Activity
  • 结果二:1: FirstActivity的onPause ,2:SecondActivity onCreate  onStart onResume,3:FirstActivity onStop
  • 操作三:点击back按钮的时候
  • 结果三:SecondActivity onPause FirstActivity onRestart onStart onResume SecondActivity onStop onDestory
  •     

注意:什么时候调用onDestroy方法

  • 1 在一个Activity调用了finish() 方法

(此效果在下一节案例1给大家展示)

  • 2 资源不够或是系统认为此Activity没有用的时候系统调用onDestroy方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1187914.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vim基本使用操作

前言&#xff1a;作者也是初学Linux&#xff0c;可能总结的还不是很到位 Linux修炼功法&#xff1a;初阶功法 ♈️今日夜电波&#xff1a;美人鱼—林俊杰 0:21━━━━━━️&#x1f49f;──────── 4:14 …

详解Python文件: .py、.ipynb、.pyi、.pyc、​.pyd

今天科普下各类Python代码文件的后缀&#xff0c;给各位Python开发“扫扫盲”。 .py 最常见的Python代码文件后缀名&#xff0c;官方称Python源代码文件。 .ipynb 这个还是比较常见的&#xff0c;.ipynb是Jupyter Notebook文件的扩展名&#xff0c;它代表"IPython Not…

大模型时代,开发者成长指南 | 新程序员

【编者按】GPT 系列的面世影响了全世界、各个行业&#xff0c;对于开发者们的感受则最为深切。以 ChatGPT、Github Copilot 为首&#xff0c;各类 AI 编程助手层出不穷。编程范式正在发生前所未有的变化&#xff0c;从汇编到 Java 等高级语言&#xff0c;再到今天以自然语言为特…

在Kotlin中设置User-Agent以模拟搜索引擎爬虫

前言 随着双十一电商活动的临近&#xff0c;电商平台成为了狂欢的中心。对于商家和消费者来说&#xff0c;了解市场趋势和竞争对手的信息至关重要。在这个数字时代&#xff0c;爬虫技术成为了获取电商数据的有力工具之一。本文将以亚马逊为例&#xff0c;介绍如何使用Kotlin编…

Excel中功能区的存放位置很灵活,可以根据需要隐藏或显示

在这个简短的教程中,你将找到5种快速简单的方法来恢复Excel功能区,以防丢失,并学习如何隐藏功能区,为工作表腾出更多空间。 功能区是Excel中所有操作的中心点,也是大多数可用功能和命令所在的区域。你觉得功能区占用了你太多的屏幕空间吗?没问题,只需单击鼠标,它就被隐…

ROS源码安装应用。VSCode

ROS源码安装应用 安装一下VSCode 前置文章 到安装程序的目录中: 完成克隆 编译 catkin_make打开ros核心 roscore打开应用程序 rosrun turtlesim turtlesim_node安装一下VSCode deb下载地址 sudo dpkg -i code_1.84.1-1699275408_amd64.deb添加项目工程到工作空间&#xff…

股票融资科普:融资融券对散户好不好?为何?

股票融资融券是一种常见的股票交易方式&#xff0c;它可以让投资者通过借入资金来购买股票&#xff0c;或借入股票来卖空股票&#xff0c;从而获得投资收益。但是&#xff0c;对于散户来说&#xff0c;融资融券到底是好是坏呢&#xff1f;下面将从几个方面来解析。 首先&#x…

4.搭建压测可视化平台-如何离线完成

目录 概述前置安装 InfluxDB下载 InfluxDB启动 InfluxDB进入容器内部influxdb相关参数运行验证 安装 Grafana下载 Grafana 镜像启动 Grafana 容器验证部署grafana串联influxdb导入模板 安装 node_exporter安装 prometheus下载解压运行配置 prometheus 问题结束 概述 今日涉及的…

功率信号源应用在哪些领域

功率信号源是一种广泛应用于各种领域的设备&#xff0c;它们能够产生特定功率的信号输出&#xff0c;为其他电子设备或系统提供所需的电能或能量。下面将介绍功率信号源在几个不同领域的应用。 无线通信领域&#xff1a; 无线通信系统需要稳定而可靠的功率信号源来提供电能给无…

Java基础篇 | 线程池相关

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; Java从入门到精通 ✨特色专栏&#xf…

【Python大数据笔记_day03_shell编程和大数据导论】

shell编程 一、shell简介 shell语言是一个C语言编写的脚本语言,它是用户与linux的桥梁 shell编程:通常指的是学习shell命令语法后,利用这套语法开发脚本程序,操作、访问内核服务。而不是使用C语言去编写一个shell程序。 shell解释器&#xff1a;unix默认sh&#xff0c;Linux的…

景联文科技提供高质量人像采集服务,助力3D虚拟人提升逼真度

人像采集是一种通过特定设备或技术&#xff0c;对人的相貌、身材等特征信息进行收集和处理的过程&#xff0c;可应用于3D虚拟人领域。通过采集大量的人像数据&#xff0c;可以训练和优化人像识别算法&#xff0c;提高其准确性。 人像采集对于提高3D虚拟人的逼真度、个性化定制以…

notepad 文本筛选并替换

正则表达式&#xff1a; ".*"中的"."代表的是匹配一切字符"\s" 匹配所有空白字符(包括制表符); "\S"匹配所有字符串"\d" 匹配所有数字 "\D"匹配所有非数字"*" 代表的是贪婪匹配模式意思为连续匹…

【机器学习】七、降维与度量学习

1. 维数灾难 样本的特征数称为维数&#xff08;dimensionality&#xff09;&#xff0c;当维数非常大时&#xff0c;也就是现在所说的维数灾难。 维数灾难具体表现在&#xff1a;在高维情形下&#xff0c;数据样本将变得十分稀疏&#xff0c;因为此时要满足训练样本为“密采样…

Masked Image Training for Generalizable Deep Image Denoising 论文阅读笔记

CVPR2023 港科大&#xff08;广州&#xff09;发的一篇denoising的论文&#xff0c;作者里面有上海AILab的董超老师&#xff08;看introduction的时候看到有一段很像董超老师 Networks are slaching off 的论文的思想&#xff0c;说网络overfitting的时候学习了训练集的噪声模式…

2023年【起重机司机(限门式起重机)】新版试题及起重机司机(限门式起重机)找解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 起重机司机(限门式起重机)新版试题考前必练&#xff01;安全生产模拟考试一点通每个月更新起重机司机(限门式起重机)找解析题目及答案&#xff01;多做几遍&#xff0c;其实通过起重机司机(限门式起重机)作业模拟考试…

桌面此电脑图标不见了的解决办法

打开Windows设置 找到主题&#xff08;每个机型的位置可能不一样&#xff09;&#xff0c;然后点击桌面图标设置 我们也可以使用搜索框进行查找 “主题” 如果直接检索“桌面图标设置”有可能找不到 在桌面图标设置里我们可以自行勾选&#xff0c;选择想要在桌面进行显示的图标…

神经网络遗传算法函数极值寻优

大家好&#xff0c;我是带我去滑雪&#xff01; 对于未知的非线性函数&#xff0c;仅仅通过函数的输入和输出数据难以寻找函数极值&#xff0c;这一类问题可以通过神经网络结合遗传算法求解&#xff0c;利用神经网络的非线性拟合能力和遗传算法的非线性寻优能力寻找函数极值。 …

香橙派orangepi c#.net霍尔水流量计+485脉冲精准测水流量实操实例-

香橙派 c#.net iot 霍尔水流量计传感器实操实例 用于测量液体流量,包括咖啡机,自助饮料机,农场水肥等流量检测,很便宜,十块钱以内一个 1、设备:流量计-4分水管 2、脉冲计数器 我使用的是国产香橙派 orangepi zero2 接线: 流量计香橙派红线5V黑线GND黄线wPi编码:10香…

WordPress Wpay最简单的付费查看下载wp主题模板开心无限制版

模板简介&#xff1a; wpay基于wppay插件二开&#xff0c;为了就是更简单的实现虚拟资源购买分享 本主题就是为了简单而生&#xff0c;idwons功能太多&#xff0c;许多人搭建起来站点没有用户消费&#xff0c;折腾大半天&#xff0c;不如来个简单的. 首页支持分页模式&#xff…