Android按鍵響應的幾種方式、安卓頁面的跳轉、頁面跳轉傳參、頁面自動跳轉、Activity(頁面)的生命周期

按鍵響應的第一種方式:

  • 在XML文件里面設置按鍵的onClick綁定函數。就像下面的代碼,給Button設置onClick屬性,在按鍵被按下的時候,會調用java文件里面的onClickbtton1這個函數,因為現已將它和這個按鈕進行了綁定。利用布局文件中的onClick屬性,并在實現文件中實現該方法。注意的是這里的方法名應該和布局文件中onClick屬性的方法名相同,該方法必須是public方法。
    <Buttonandroid:id="@+id/btn1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="onClickbtton1"android:text="按鍵一"/>
  • 下面是兩個通過兩個按鍵來調用綁定的函數的XML代碼:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity" ><Buttonandroid:id="@+id/btn1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="onClickbtton1"android:text="按鍵一"/><Buttonandroid:id="@+id/btn2"android:layout_alignParentRight="true"android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="onClickbtton1"android:text="按鍵二"/>
</RelativeLayout>
  • java代碼:
package com.fhn.buttonresponse;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void onClickbtton1(View v) //這個函數的權限必須是public,否則會找不到這個函數{int id=v.getId();  //通過getId()來獲取當前對象的ID,v表示函數的調用者//按鍵一按下V就表示按鍵一,按鍵二被按下V就表示按鍵二,通過getId可以獲取他們的IDswitch(id){case R.id.btn1:System.out.println("按鍵一被按下");System.out.println(id);Toast.makeText(this, "按鍵一",0).show(); //this指代當前類,按鍵一指示要顯示的內容,第三個參數表示要顯示的時長0表示默認時長,這個就是在安卓APP上顯示的信息//makeText是一個構造方法,它最終會產生一個對象,通過.show來調用對象的方法break;case R.id.btn2:System.out.println("按鍵二被按下");System.out.println(id);Toast.makeText(this, "按鍵二", 0).show();break;default: break;}		}
}

按鍵響應的第二種方式:

關于監聽器:監聽器是一個存在于View類下的接口,一般以On**Llistener命名,實現該接口需要復寫相應的on(View v)方法(如onClick(View v))。Android提供的基于事件監聽接口有OnClickListener、OnLongClickListener、OnFocusChangeListener、OnKeyListener、OnTouchListener、OnCreateContextMenuListener等。

  • OnClickListener接口:該接口處理的是點擊事件。在觸摸模式下,是在某個View上按下并抬起的組合動作,而在鍵盤模式下,是某個View獲得焦點后點擊確定鍵或者按下軌跡球事件。
  • OnLongClickListener接口: OnLongClickListener接口與上述的OnClickListener接口原理基本相同,只是該接口為View長按事件的捕捉接口,即當長時間按下某個View時觸發的事件。
  • OnFocusChangeListener接口:OnFocusChangeListener接口用來處理控件焦點發生改變的事件。如果注冊了該接口,當某個控件失去焦點或者獲得焦點時都會觸發該接口中的回調方法。
  • OnKeyListener接口:是對手機鍵盤進行監聽的接口,通過對某個View注冊并監聽,當View獲得焦點并有鍵盤事件時,便會觸發該接口中的回調方法。
  • OnTouchListener接口:是用來處理手機屏幕事件的監聽接口,當為View的范圍內觸摸按下、抬起或滑動等動作時都會觸發該事件。
  • OnCreateContextMenuListener接口:是用來處理上下文菜單顯示事件的監聽接口。該方法是定義和注冊上下文菜單的另一種方式。

實現監聽的兩種方法:

方法一:在Activity中定義一個內部類繼承監聽器接口(這里是OnClickListener)。常見的繼承方法如下:

class MyListener implements View.OnClickListener{@Overridepublic void onClick(View v) {Toast.makeText(MainActivity.this,"you have clicked Button2",Toast.LENGTH_SHORT).show();}

OnClickListener接口的使用(XML文件只需要為控件設置ID即可,不用綁定函數,需要在java文件中將XML文件中的按鍵和java代碼通過findViewById關聯起來):

package com.fhn.buttonresponse;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;首先應該實現接口類,再類中實現onClick方法,實現業務代碼。class Myclick implements View.OnClickListener  //繼承View的OnClickListener這個方法
{@Overridepublic void onClick(View v) {int id=v.getId();switch(id){case R.id.btn1:System.out.println("按鍵一被按下");System.out.println(id);//Toast.makeText(this, "按鍵一",0).show(); //this指代當前類,按鍵一指示要顯示的內容,第三個參數表示要顯示的時長0表示默認時長//makeText是一個構造方法,它最終會產生一個對象,通過.show來調用對象的方法break;case R.id.btn2:System.out.println("按鍵二被按下");System.out.println(id);//Toast.makeText(this, "按鍵二", 0).show();break;default: break;}		}
}
public class MainActivity extends Activity {Button btu1;Button btu2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btu1 =(Button)findViewById(R.id.btn1);//將java文件里面的btu1和XML文件里面的btn1相關聯btu2 =(Button)findViewById(R.id.btn2);//將java文件里面的btu2和XML文件里面的btn2相關聯btu1.setOnClickListener(new Myclick());btu2.setOnClickListener(new Myclick());}
}

方法二:實現匿名內部類。這種方法適合只希望對監聽器進行一次性使用的情況,在該代碼塊運行完畢之后,該監聽器也就不復存在了。

bt1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(MainActivity.this,"you have clicked Button1",Toast.LENGTH_SHORT).show();}});

使用匿名內部類的方式創建監聽器:

package com.fhn.buttonresponse;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class MainActivity extends Activity {Button btu1;Button btu2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btu1 =(Button)findViewById(R.id.btn1);//將java文件里面的btu1和XML文件里面的btn1相關聯btu2 =(Button)findViewById(R.id.btn2);//將java文件里面的btu2和XML文件里面的btn2相關聯btu1.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View v) {  //new View.OnClickListener(){}相當于new了一個匿名內部類,然后還要實現內部類的接口onClick// TODO Auto-generated method stubSystem.out.println("按鍵一被按下");System.out.println(v.getId());Toast.makeText(MainActivity.this, "按鍵一", 0).show();}	});btu2.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stubSystem.out.println("按鍵二被按下");System.out.println(v.getId());Toast.makeText(MainActivity.this, "按鍵二", 0).show();}});}
}

按鍵響應第三種方式(為整個Activity設置監聽器):

package com.fhn.buttonresponse;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;public class MainActivity extends Activity implements View.OnClickListener { //MainActivity繼承View.OnClickListener//這個接口,說明這個頁面具有監聽按鍵的功能Button btu1;Button btu2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btu1 =(Button)findViewById(R.id.btn1);//將java文件里面的btu1和XML文件里面的btn1相關聯btu2 =(Button)findViewById(R.id.btn2);//將java文件里面的btu2和XML文件里面的btn2相關聯btu1.setOnClickListener(this); //將MainActivity這個類有的按鍵監聽到功能設置給btu1btu2.setOnClickListener(this);//將MainActivity這個類有的按鍵監聽到功能設置給btu2}@Overridepublic void onClick(View v) { //按鍵被按下后執行這個函數int id=v.getId();switch(id){case R.id.btn1:System.out.println("按鍵一被按下");System.out.println(id);Toast.makeText(this, "按鍵一",0).show(); //this指代當前類,按鍵一指示要顯示的內容,第三個參數表示要顯示的時長0表示默認時長//makeText是一個構造方法,它最終會產生一個對象,通過.show來調用對象的方法break;case R.id.btn2:System.out.println("按鍵二被按下");System.out.println(id);Toast.makeText(this, "按鍵二", 0).show();break;default: break;}				}
}

安卓頁面的跳轉:

  • 為安卓添加一個新的界面,新建完成后可以看到Manifest.xml下面會新注冊一個界面。
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述

頁面跳轉(可以通過綁定函數加Intent實現):

就是在綁定函數里面添加Intent,新建Intent對象然后設置上下文(當前界面)和將要跳轉界面的類。然后使用startActivity方法實現跳轉。

  • 第一個界面的JAVA代碼:
package com.fhn.jump;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void goSecond(View v) {//intent去聲明要跳轉的界面Intent intent=new Intent(this,SecondMainActivity.class);//這個構造方法,第一個參數就是上下文(當前頁面)的意思,這里this就是指代MainActivity//第二個參數就是目標頁面的類startActivity(intent); //用startActivity去跳轉頁面}
}
  • 第二個文件的JAVA代碼:
package com.fhn.jump;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
public class SecondMainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_second_main);}public void gothird(View v){Intent intent=new Intent(this,ThirdMainActivity.class);//這個構造方法,第一個參數就是上下文(當前頁面)的意思,這里this就是指代MainActivity//第二個參數就是目標頁面的類//用startActivity去跳轉頁面startActivity(intent);}
}
  • 第三個界面的JAVA代碼:
package com.fhn.jump;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;public class ThirdMainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_third_main);}public void gofirst(View v){Intent intent=new Intent(this,MainActivity.class);//這個構造方法,第一個參數就是上下文(當前頁面)的意思,這里this就是指代MainActivity//第二個參數就是目標頁面的類//用startActivity去跳轉頁面startActivity(intent);	}
}

以整個Activity監聽的方式實現界面跳轉(以下代碼能夠實現由界面1到2,2到3,3到1):

  • 第一個界面代碼:
package com.fhn.jump;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;public class MainActivity extends Activity implements View.OnClickListener{Button btu1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btu1=(Button)findViewById(R.id.btn1);btu1.setOnClickListener(this);}@Overridepublic void onClick(View arg0) {Intent intent=new Intent(this,SecondMainActivity.class);//這個構造方法,第一個參數就是上下文(當前頁面)的意思,這里this就是指代MainActivity//第二個參數就是目標頁面的類//用startActivity去跳轉頁面startActivity(intent);}
}
  • 第二個界面代碼:
package com.fhn.jump;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
public class SecondMainActivity extends Activity implements View.OnClickListener {Button btu1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_second_main);btu1=(Button)findViewById(R.id.btn2);btu1.setOnClickListener(this);}public void onClick(View arg0) {Intent intent=new Intent(this,ThirdMainActivity.class);//這個構造方法,第一個參數就是上下文(當前頁面)的意思,這里this就是指代MainActivity//第二個參數就是目標頁面的類//用startActivity去跳轉頁面startActivity(intent);}
}
  • 第三個界面代碼:
package com.fhn.jump;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class ThirdMainActivity extends Activity  implements View.OnClickListener {Button btu;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_third_main);btu=(Button)findViewById(R.id.btn3);btu.setOnClickListener(this);}public void onClick(View arg0) {Intent intent=new Intent(this,MainActivity.class);//這個構造方法,第一個參數就是上下文(當前頁面)的意思,這里this就是指代MainActivity//第二個參數就是目標頁面的類//用startActivity去跳轉頁面startActivity(intent);}
}

頁面跳轉如何傳參(整型或者字符串——putExtra):

第一個界面向第二個界面傳參(整數1),第二個界面向第三個界面傳參(字符串sting),第三個界面向第一個界面傳參(字符串string2)

  • MainActivity的代碼(第一個界面):
package com.fhn.jump;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;public class MainActivity extends Activity {Button btu1;private String data2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Intent i=this.getIntent();//獲取當前界面的Intentdata2=i.getStringExtra("Mydata");Toast.makeText(this,data2, Toast.LENGTH_LONG).show();}public void goSecond(View v) {//intent去聲明要跳轉的界面Intent intent=new Intent(this,SecondMainActivity.class);//這個構造方法,第一個參數就是上下文(當前頁面)的意思,這里this就是指代MainActivity//第二個參數就是目標頁面的類intent.putExtra("Mydata", 1);//putExtra參數是鍵值對的方式,這里就表示Mydata=1startActivity(intent);       //用startActivity去跳轉頁面}
}
  • SecondActivity文件代碼:
package com.fhn.jump;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;public class SecondMainActivity extends Activity {private int data1;private String data2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_second_main);Intent i=this.getIntent();//獲取當前界面的Intent
//		data2=i.getStringExtra("Mydata");
//		Toast.makeText(this,data2, Toast.LENGTH_LONG).show();data1 =i.getIntExtra("Mydata",0);System.out.println(data1);Toast.makeText(this,String.valueOf(data1), Toast.LENGTH_LONG).show();}public void gothird(View v){Intent intent=new Intent(this,ThirdMainActivity.class);//這個構造方法,第一個參數就是上下文(當前頁面)的意思,這里this就是指代MainActivity//第二個參數就是目標頁面的類intent.putExtra("Mydata","string");//putExtra參數是鍵值對的方式,這里就表示Mydata=1//用startActivity去跳轉頁面startActivity(intent);}
}
  • ThirdActivity文件代碼:
package com.fhn.jump;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;
public class ThirdMainActivity extends Activity {private String data2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_third_main);Intent i=this.getIntent();//獲取當前界面的Intentdata2=i.getStringExtra("Mydata");Toast.makeText(this,data2, Toast.LENGTH_LONG).show();}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.third_main, menu);return true;}public void gofirst(View v){Intent intent=new Intent(this,MainActivity.class);//這個構造方法,第一個參數就是上下文(當前頁面)的意思,這里this就是指代MainActivity//第二個參數就是目標頁面的類intent.putExtra("Mydata","string2");//putExtra參數是鍵值對的方式,這里就表示Mydata=1//用startActivity去跳轉頁面startActivity(intent);	}
}

使用Bundle的方式實現界面的數據傳輸:

  • MainActivity文件代碼:
package com.fhn.jump;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class MainActivity extends Activity {Button btu1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void goSecond(View v) {//intent去聲明要跳轉的界面Intent intent=new Intent(this,SecondMainActivity.class);//這個構造方法,第一個參數就是上下文(當前頁面)的意思,這里this就是指代MainActivity//第二個參數就是目標頁面的類Bundle bundle1=new Bundle();//新建一個bundle對象bundle1.putChar("char", 'a'); //傳一個字符bundle1.putString("string", "string");//傳字符串intent.putExtras(bundle1);//將bundle1進行傳輸startActivity(intent);//用startActivity去跳轉頁面}
}
  • SecondActivity文件代碼:
package com.fhn.jump;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;public class SecondMainActivity extends Activity {char a;String d;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_second_main);Intent i=this.getIntent(); //獲取當前界面的IntentBundle b=i.getExtras();  //新建Bundle對象,來獲取大量數據a=b.getChar("char");      //獲得字符d=b.getString("string");  //獲得字符串Toast.makeText(this,Character.toString(a),0).show();Toast.makeText(this,d,0).show();}public void gothird(View v){Intent intent=new Intent(this,ThirdMainActivity.class);//這個構造方法,第一個參數就是上下文(當前頁面)的意思,這里this就是指代MainActivity//第二個參數就是目標頁面的類//用startActivity去跳轉頁面startActivity(intent);}
}

安卓界面實現自動跳轉:

當使用Thread.sleep();這個線程延時函數的時候,會出現第一個界面無法顯示的問題,因為在一個APP啟動的時候會有一個主要的UI線程,而這個sleep實在當前的UI線程去做了阻塞的,UI顯示會不斷的刷新屏幕界面,而這時候sleep就是在刷新屏幕界面的時候阻塞,所以會造成界面出不來(無法看到界面的任何字符)。既然要實現界面的自動跳轉就一定要用到sleep但是不能在當前線程,要在一個新的線程里面去sleep,啟動另外一個線程,在新的線程里面sleep后顯示一個新的界面。

使用java開辟線程:Thread t=new Thread();   //實例化了一個線程,但是沒有啟動線程
t.start();               //這時候才啟動了線程但是這樣并不知道你要在新的線程里面干什么,所以要要實例化的時候,添加參數:Thread t=new Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stub}});
Runnable是一個接口,你需要重寫里面的run方法(run方法里面就是寫的你真正要干的工作)
  • 實現運行APP3S后從第一界面跳轉到第二界面
package com.fhn.jump;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Thread t = new Thread(new Runnable() {@Overridepublic void run() {try {Thread.sleep(3000);  //3000毫秒} catch (InterruptedException e) { // 這里有一個異常處理// TODO Auto-generated catch blocke.printStackTrace();}// intent去聲明要跳轉的界面Intent intent = new Intent(MainActivity.this, SecondMainActivity.class);// 這個構造方法,第一個參數就是上下文(當前頁面)的意思,這里this就是指代MainActivity// 第二個參數就是目標頁面的類startActivity(intent);// 用startActivity去跳轉頁面}});t.start();  //啟動線程去執行run里面的內容}public void goSecond(View v) {//intent去聲明要跳轉的界面Intent intent=new Intent(this,SecondMainActivity.class);//這個構造方法,第一個參數就是上下文(當前頁面)的意思,這里this就是指代MainActivity//第二個參數就是目標頁面的類startActivity(intent); //用startActivity去跳轉頁面}
}

Activity的生命周期:

相信不少朋友也已經看過這個流程圖了,也基本了解了Activity生命周期的幾個過程,我們就來說一說這幾個過程。
在這里插入圖片描述

  • 啟動Activity:系統會先調用onCreate方法,然后調用onStart方法,最后調用onResume,Activity進入運行狀態。
  • 當前Activity被其他Activity覆蓋其上或被鎖屏:系統會調用onPause方法,暫停當前Activity的執行。
  • 當前Activity由被覆蓋狀態回到前臺或解鎖屏:系統會調用onResume方法,再次進入運行狀態。
  • 當前Activity轉到新的Activity界面或按Home鍵回到主屏,自身退居后臺:系統會先調用onPause方法,然后調用onStop方法,進入停滯狀態。
  • 用戶后退回到此Activity:系統會先調用onRestart方法,然后調用onStart方法,最后調用onResume方法,再次進入運行狀態。
  • 當前Activity處于被覆蓋狀態或者后臺不可見狀態,即第2步和第4步,系統內存不足,殺死當前Activity,而后用戶退回當前Activity:再次調用onCreate方法、onStart方法、onResume方法,進入運行狀態。
  • 用戶退出當前Activity,系統先調用onPause方法,然后調用onStop方法,最后調用onDestory方法,結束當前Activity。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272065.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272065.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272065.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

pycharm體驗

查看python版本 退出 exit()

Linux文本檢索命令grep筆記

grep是在linux系統中基于行文本非常實用檢索工具&#xff0c;通過該命令可以將匹配到的結果信息輸出到終端控制臺。語法格式&#xff1a;grep [-ivnc] 需要匹配的內容 文件名常用參數說明&#xff1a;-i 檢索的時候不區分大小寫-c 檢索到的匹配行數-n 檢索到的匹配行顯式具體的…

-生成樹的相關問題

瓶頸生成樹 無向圖G的一顆瓶頸生成樹(bottleneck spanning tree)。T是這樣的一顆生成樹&#xff0c;它最大的邊權值在G的所有生成樹中是最小的。瓶頸生成樹的值為T中最大權值邊的權。 即生成樹中最長邊最短的樹。 無向圖的最小生成樹一定是瓶頸生成樹&#xff0c;但瓶頸生成樹不…

成立出版社的條件_創始人親述:法國鴻飛文化出版社的誕生故事和做書心得

鴻飛文化出版社2007年在法國創立&#xff0c;專門出版由中國作家和法國插畫師共同創作的圖畫書。創始人葉俊良引用蘇東坡的詩句“人生到處知何似&#xff0c;應似飛鴻踏雪泥。泥上偶然留指爪&#xff0c;鴻飛那復計東西。”為出版社取名&#xff0c;希望通過這些“印跡”為讀者…

python單行注釋和多行注釋

# 后面加一個空格&#xff0c;下面就不會有波浪線了 點擊小燈泡下的第一行&#xff0c;可以調整注釋格式 多行注釋

Linux文件查詢筆記

1、數據庫查找命令&#xff1a;locateLinux也可以通過locate命令查找文件&#xff0c;locate命令主要是依據一個數據庫文件來執行文件的查找&#xff0c;默認情況下Linux每天會默認檢索系統中的所有文件&#xff0c;然后把檢索的文件信息記錄到數據庫文件中。因為運行locate命令…

柱坐標系下的ns方程_麥克斯韋方程組小結

一、▽ 算子、點積、叉積l▽ 算子叫“del”算子&#xff0c;即<< span"">?/?x,?/?y,?/?z>,可以理解為一個符號向量&#xff0c;向量里的元素是偏微分運算符號&#xff0c;沒有任何具體意義&#xff0c;只是一個表示方法。ln維向量的內積定義如下&a…

Java高級補充(Socket服務端、客戶端)、Handler類、安卓Socket傳數據、WebView

Socket服務端簡單地API&#xff1a; 主要用到以下幾個API&#xff1a;ServerSocket用來設置端口號、accept用來和服務端連接、getInputStream用來獲取輸入流、read用來讀取輸入流里面的數據&#xff0c;存放在提前開辟好的緩沖區里面。 import java.io.IOException; import j…

向anna學習系統結構和測試流程

今天上午主要是anne簡單介紹系統的功能和公司的測試流程。通過她的講解對于系統的大概流程有了概念。但是具體的問題估計還得到實際的操作中去。可能是這一塊的而功能比較老了&#xff0c;所以相關的文檔也是沒有及時更新的。看起來比較蠻煩&#xff0c;等我全部弄清楚了有時間…

Linux進程終止命令kill或killall?筆記

在linux命令下&#xff0c;如果需要終止某個進程&#xff0c;可以使用kill或者killall等命令來實現。終止命令的原理都是向linux內核發送一個系統操作的信號以及某個進程的ID&#xff0c;然后系統內核會根據指定的進程ID進行相應的處理。kill命令典型的用法&#xff1a;首先使用…

貝葉斯分析好壞_貝葉斯統計 | 第五章第一部分 決策基本概念

逃不掉線上期中考。。。。。。。。。開攝像頭屏錄拍照上傳。。。。。。20號考貝葉斯&#xff0c;18號考多元&#xff0c;時間序列考試時間還未知。。。。。。。但筆記還是要記的。不過貝葉斯已經跟上進度了&#xff0c;之后會按課程進度來更新貝葉斯的內容。今天開始會更新時間…

Visual Studio的調試技巧

Visual Studio的調試技巧 【原文地址】 Debugging Tips with Visual Studio 2010 【原文發表日期】 2010/8/19 10:48 AM 這是我寫的關于VS2010和.Net4發布的博客系列的第26篇。 今天的博文包含了一些有用的能用于VS的調試技巧。 我的朋友 Scott Cate&#xff08;他寫了很多很…

讀者寫者問題

河北科技大學操作系統課程設計——讀者寫者問題 #include <windows.h> #include <conio.h> #include <stdlib.h> #include <fstream> #include <io.h> #include <string.h> #include <stdio.h> using namespace std; #define READE…

Linux排序命令sort筆記

很多時候Linux需要對文本相對比較規范的文本數據進行排序&#xff0c;這時候可以使用Linux系統下的sort命令進行處理。語法格式&#xff1a;sort [-ntkr] filename常用參數&#xff1a;-n 根據數字進行排序-t 指定的分隔符-k 指定分隔符的第幾列-r 降序排序用法示例&#xff1a…

《過早退出是一切失敗的根源》讀后感

在看完周筠老師的文章&#xff1a;過早的退出是一切失敗的根源&#xff0c;內心感觸頗大。因為年輕&#xff0c;我們總覺得有許許多多的另一個與下一次&#xff0c;我們總是在某個環境里失敗或覺得不行時&#xff0c;就會想退出&#xff0c;我們對有風險的事情不愿去嘗試&#…

redirect路由配置 vue_Web前端:Vue路由進階配置

大家好&#xff0c;我來了&#xff0c;本期為大家帶來的前端開發知識是”Web前端&#xff1a;Vue路由進階配置“&#xff0c;有興趣做前端的朋友&#xff0c;和我一起來看看吧&#xff01;1. 頁面打開權限流程頁面是否能打開有以下兩點判斷&#xff1a;1. 判斷是否增加登陸的判…

ESP8266模塊無限重啟崩潰的問題

問題背景&#xff1a; 最近使用ESP8266模塊&#xff08;NodeMCU&#xff09;在Arduino環境下進行開發調試時遇到了一個ESP8266模塊無限重啟崩潰的問題。這個問題不是第一次發生了&#xff0c;很久之前遇到了后面也不知道怎么解決了。 這一次再次碰到了&#xff0c;經過查閱網上…

python格式化輸出

格式化輸出字符串 格式化輸出整數 格式化輸出浮點數 輸出&