版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第8章
教師課程管理教師課程管理8.1功能分析和設計8.2課程列表視圖Adapter實現(xiàn)8.3Intent活動啟動8.4廣播事件8.1功能分析和設計
教師課程管理功能分析:教師查看所上課程的課程列表,對課程進行添加、刪除、編輯以及學生管理。設計:歡迎界面點擊“課程管理”,跳轉(zhuǎn)到教師課程管理界面。8.1功能分析和設計
課程添加功能分析:教師登錄系統(tǒng),選擇“課程管理”,點擊“添加”按鈕,填寫課程信息進行課程添加。設計:點擊課程添加按鈕,填寫課程信息,點擊“完成”按鈕,保存結(jié)果,點擊完成,可出現(xiàn)課程添加成功提醒。8.1功能分析和設計
課程編輯功能分析:教師單擊課程列表中的某一課程,查看課程詳情,并可對課程信息進行修改。設計:點擊某一課程,查看該課程詳細信息,點擊右上角的“功能”按鈕,展開功能菜單,點擊“編輯”,在“課程信息修改”頁面中,教師可以對課程編號、名稱進行修改,對于已有的上課時間和地點,也可以進行刪除、修改、添加操作。8.1功能分析和設計
課程刪除功能分析:教師可對該課程信息以及級聯(lián)的學生信息進行刪除。設計:教師單擊課程列表中“刪除”按鈕,可對該課程信息以及級聯(lián)的學生信息進行刪除。8.1功能分析和設計
課程學生管理功能分析:學生添加,學生刪除,學生清空設計:點擊“功能”按鈕后選中學生管理功能,即可顯示該課程下所有學生的信息。學生信息可以添加,采用數(shù)據(jù)庫直接導入方式,因此教師不用對其進行編輯;點擊相應的刪除按鈕,能夠?qū)W生進行逐個刪除;查看課程詳情時,點擊右上角的“功能”按鈕后,選擇“學生清空”,即可刪除所有學生信息。8.2課程列表視圖Adapter實現(xiàn)Adapter是連接后端數(shù)據(jù)和前端顯示的適配器接口,是數(shù)據(jù)和UI(View)之間一個重要的紐帶。在常見的View(ListView,GridView)等地方都需要用到Adapter。DataSourceAdapterCursorArrayListListView
Adapter8.2課程列表視圖Adapter實現(xiàn)建立ListView
在顯示課程信息的界面CourseActivity上建立一個ListView,本例采用直接建立ListView方式創(chuàng)建。為了能夠?qū)︼@示課程列表監(jiān)聽,首先需要對其指定id值。修改activity_course.xml文件,對ListView增加id值,顯示的課程列表的id值為courselist。
制定課程列表ArrayAdapter<ListViewandroid:id="@+id/courseList" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/table_shape"android:layout_margin="15dip"></ListView>8.2課程列表視圖Adapter實現(xiàn)創(chuàng)建課程名列表
首先應創(chuàng)建一個ListView以及名為listItems的list集合,繼而從服務器端中獲取到所需要的課程名,放入到courseNames的list空間內(nèi)。
制定課程列表ArrayAdapter//創(chuàng)建一個ListView以及名為listItems的list集合ListViewview=(ListView)super.findViewById(R.id.courseList);listItems=newArrayList<Map<String,Object>>();
//從服務器端中獲取到所需要的課程名,放入到list空間內(nèi)for(inti=0;i<courseNames.size();i++){
Map<String,Object>listItem=newHashMap<String,Object>(); listItem.put("coursename",courseNames.get(i)); listItems.add(listItem);}8.2課程列表視圖Adapter實現(xiàn)制定Adapter
需要一個連接ListView視圖對象和數(shù)組數(shù)據(jù)的適配器來完成兩者的適配工作,因而使用如下方法進行制定:
制定課程列表ArrayAdapter//制定Adapter,顯示課程名稱privateLayoutInflatermInflater;
publicMyAdapter(Contextcontext){this.mInflater=LayoutInflater.from(context);}convertView=mInflater.inflate(R.layout.adapter_course,null);ArrayAdapter(Context
context,
int
textViewResourceId,
List<T>
objects)
采用LayoutInflater對象制定Adapter:8.2課程列表視圖Adapter實現(xiàn)綁定Adapter
利用setAdapter()方法將設置好的ArrayAdapter與Listview進行綁定,將課程信息顯示出來。
使用Adapter綁定課程數(shù)據(jù)//Adapter與ListView進行綁定MyAdapteradapter=newMyAdapter(this);view.setAdapter(adapter);在WelcomeActivity界面跳轉(zhuǎn)到CourseActivity界面后,即可顯示教師授課列表。8.2課程列表視圖Adapter實現(xiàn)顯示課程信息
使用Adapter綁定課程數(shù)據(jù)//ListView監(jiān)聽函數(shù),點擊列表中的某項可進行一定操作privateclassMyListener2implementsOnClickListener{intmPosition;publicMyListener2(intinPosition){
mPosition=inPosition;
}
@Override
publicvoidonClick(Viewv){
//TODOAuto-generatedmethodstub//創(chuàng)建意圖
Intentintent=newIntent(CourseActivity.this,CourseInfoActivity.class);
Bundlebundle=newBundle();
bundle.putInt("courseid",courseid_temp.get(mPosition));
//將課程ID作為額外參數(shù)傳過去
intent.putExtras(bundle);
//頁面跳轉(zhuǎn)
startActivity(intent);
}}跳轉(zhuǎn)到CourseInfoActivity界面,進行監(jiān)聽,并顯示相應的課程信息。8.2課程列表視圖Adapter實現(xiàn)
對課程列表Adapter的測試,制定好Adapter,并與ListView綁定好,之后輸出一串字符,表示綁定成功,并可顯示相關(guān)數(shù)據(jù)。
測試課程列表視圖AdapterMyAdapteradapter=newMyAdapter(this);view.setAdapter(adapter);
System.out.println("Adapter已綁定課程數(shù)據(jù),并顯示相關(guān)內(nèi)容");
課程列表視圖Adapter執(zhí)行成功,輸出“Adapter已綁定課程數(shù)據(jù),并顯示相關(guān)內(nèi)容”的字符串效果圖如下所示:8.3Intent活動啟動
Intent在Android里可以說是至關(guān)重要的,它承擔著程序跳轉(zhuǎn)和數(shù)據(jù)傳遞的重要使命。
那么為什么要使用Intent,好像利用startActivity(ClassactivityClass)更方便簡潔呢。我們知道,在Android中除了活動(Activity)這一組件之外,還有廣播(Boardcast),服務(Service)組件等,不管我們需要啟動哪種組件,利用統(tǒng)一的Intent來封裝啟動的意圖,不僅降低了組件耦合,也體現(xiàn)了Android的編程理念。同時,不同的Activity間也可以通過Intent來攜帶Bundle對象,實現(xiàn)數(shù)據(jù)的相互傳遞。簡而言之,屏幕是通過Activity來實現(xiàn),各個屏幕又相互獨立,屏幕間通過Intent實現(xiàn)切換和信息傳遞。
本節(jié)主要介紹Intent啟動活動(Activity)。讓我們先來看Intent是如何啟動Activity的。
Intent簡介8.3Intent活動啟動顯式啟動:必須在Intent中指明啟動的Activity所在的類。在前面的例子中也不止一次地利用顯式啟動的方式啟動特定的Activity。隱式啟動:在程序中,有時我們并不指明特定的Activity去啟動,而是讓Android系統(tǒng)根據(jù)Intent的動作和數(shù)據(jù)來決定到底啟動哪個Activity。比如最終用戶的Activity,只需描述自己何時被執(zhí)行,當我們啟動的Activity信息與最終用戶的Activity信息匹配,則最終用戶的Activity啟動,因此,是由Android系統(tǒng)和最終用戶來選擇。
Intent啟動方式8.3Intent活動啟動
Intent顯式啟動課程添加Activity添加顯式啟動按鈕
本例需要先添加一個添加課程的按鈕,利用該按鈕實現(xiàn)Activity的顯式啟動。<Buttonandroid:id="@+id/add_btn"android:layout_width="40dp"android:layout_height="30dp"android:background="@drawable/top_btn_add"android:textColor="#fff"android:textSize="18sp"/>在WelcomeActivity界面跳轉(zhuǎn)到CourseActivity界面后,即出現(xiàn)課程添加的按鈕。8.3Intent活動啟動
Intent顯式啟動課程添加ActivityIntent顯式啟動
如下即為顯式啟動的相關(guān)代碼,Intent構(gòu)造函數(shù)的第一個參數(shù)是應用程序的上下文,即CourseActivity的上下文,第二個參數(shù)是接收Intent的目標組件,CourseAddActivity。此后,啟動Activity即可跳轉(zhuǎn)到指定的Activity。button_add.setOnClickListener(newOnClickListener(){@Override
publicvoidonClick(Viewv){
//TODOAuto-generatedmethodstub//創(chuàng)建意圖
Intenti=newIntent(CourseActivity.this,CourseAddActivity.class);//顯式啟動CourseAddActivity
CourseActivity.this.startActivity(i);
}
})8.3Intent活動啟動
Intent顯式啟動課程添加Activity注冊組件
CourseActivity和CourseAddActivity,必須到AndroidManifest.xml文件中注冊。<!--利用<activity>標簽定義兩個Activity--><activity
android:name="com.coursemis.CourseActivity"android:label="@string/title_activity_course"></activity><activityandroid:name="com.coursemis.CourseAddActivity"
android:label="@string/title_activity_course_info"></activity>點擊課程添加按鈕,顯式啟動CourseAddActivity進行課程添加8.3Intent活動啟動
Intent隱式啟動ActivityIntent隱式啟動
隱式啟動不需要指定特定的Activity,而是設置Action、Data、Category,讓系統(tǒng)來篩選出合適的Activity,使程序具有更大的靈活性,尤其是有利于第三方組件的使用。button_add.setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewv){
//TODOAuto-generatedmethodstub//創(chuàng)建意圖,設置Intent的Action屬性StringactionName="com.coursemis.CourseAddActivity";
Intenti=newIntent(actionName);
//隱式啟動CourseAddActivity
CourseActivity.this.startActivity(i);
}});8.3Intent活動啟動
Intent隱式啟動Activity注冊聲明
隱式調(diào)用不只是在AndroidManifest.xml文件中聲明,還要加上intent-filter。首先被調(diào)用的Activity要有一個帶有<intent-filter>并且包含<action>的Activity,設定它可以處理的Intent,并且category設為“ent.category.DEFAULT”。action的name是一個字符串,可以自定義,在這里設成“
com.coursemis.CourseAddActivity”,然后,在CourseActivity,才可以通過這個actionname找到所需的Activity。<!--利用<activity>和<intent-filter>標簽定義隱式啟動Activity--><activityandroid:name="com.coursemis.CourseAddActivity"android:label="@string/title_activity_course_add">
<intent-filter><actionandroid:name="com.coursemis.CourseAddActivity"/><categoryandroid:name="ent.category.DEFAULT"/></intent-filter></activity>8.3Intent活動啟動
Android系統(tǒng)支持的常見動作字符串常量動作說明ACTION_ANSWER打開接聽電話的Activity,默認為Android內(nèi)置的撥號盤界面ACTION_CALL打開撥號盤界面并撥打電話,使用Uri中的數(shù)字部分作為電話號碼ACTION_DELETE打開一個Activity,對所提供的數(shù)據(jù)進行刪除操作ACTION_DIAL打開內(nèi)置撥號盤界面,顯示Uri中提供的電話號碼ACTION_EDIT打開一個Activity,對所提供的數(shù)據(jù)進行編輯操作ACTION_INSERT打開一個Activity,在提供數(shù)據(jù)的當前位置插入新項ACTION_PICK啟動一個子Activity,從提供的數(shù)據(jù)列表中選取一項ACTION_SEARCH啟動一個Activity,執(zhí)行搜索動作ACTION_SENDTO啟動一個Activity,向數(shù)據(jù)提供的聯(lián)系人發(fā)送信息ACTION_SEND啟動一個可以發(fā)送數(shù)據(jù)的ActivityACTION_VIEW最常用的動作,對以Uri方式傳送的數(shù)據(jù),根據(jù)Uri協(xié)議部分以最佳方式啟動相應的Activity進行處理。對于http:address將打開瀏覽器查看;對于tel:address將打開撥號呼叫指定的電話號碼ACTION_WEB_SEARCH打開一個Activity,對提供的數(shù)據(jù)進行Web搜索我們也可以在自己的程序中調(diào)用其他程序的Action。8.3Intent活動啟動
活動間數(shù)據(jù)傳遞Bundle在Activity間交換數(shù)據(jù)Intent提供了很多方法來傳遞數(shù)據(jù),使用時,根據(jù)實際情況挑選適當?shù)暮瘮?shù)調(diào)用,就可以達到數(shù)據(jù)傳遞的目的了。傳遞數(shù)據(jù)攜帶包putExtras
(Bundledata):向Intent中放入所需要“攜帶”的數(shù)據(jù)包。putExtras(Bundledata)
:從Intent中取出所需要“攜帶”的數(shù)據(jù)包。存入數(shù)據(jù)到Bundle對象putXxx(Stringkey,Xxxdata):向Bundle放入例如int等數(shù)據(jù)類型的數(shù)據(jù)。putSerializable(Stringkey,Serializabledata):向Bundle放入一個可序列化的對象。從Bundle對象取出數(shù)據(jù)getXxx(Stringkey):從Bundle中取出例如int等數(shù)據(jù)類型的數(shù)據(jù)。getSerializable(Stringkey,Serializabledata):從Bundle取出一個可序列化的對象。8.3Intent活動啟動
活動間數(shù)據(jù)傳遞Bundle中存入數(shù)據(jù)
創(chuàng)建一個Bundle對象,把增加的信息添加到指定的教師名下,利用putInt()方法向Bundle放入int類型的teacherid,繼而使用putExtras()方法向Intent中放入所需要“攜帶”的數(shù)據(jù)包bundle。button_add.setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewv){
//TODOAuto-generatedmethodstub
Intenti=newIntent(CourseActivity.this,CourseAddActivity.class);//創(chuàng)建Bundle對象
Bundlebundle=newBundle();//向Bundle對象放入需要傳遞的數(shù)據(jù)
bundle.putInt("teacherid",teacherid);
//將Bundle對象放入Intent
i.putExtras(bundle);
CourseActivity.this.startActivity(i);
}});8.3Intent活動啟動
活動間數(shù)據(jù)傳遞取出數(shù)據(jù)
利用getIntent()方法檢索項目中包含的原始Intent,利用getExtras()方法向Intent中取出所需要“攜帶”的數(shù)據(jù)包bundle,getInt()方法向Bundle取出int類型的tectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_course_add);
this.context=this; client=newAsyncHttpClient();
Intentintent=getIntent();
//取出放置在Bundle對象里的數(shù)據(jù) teacherid=intent.getExtras().getInt("teacherid");……}8.3Intent活動啟動
活動間數(shù)據(jù)傳遞獲取Activity返回值
通常,當一個Activity啟動另一個Activity,讓用戶對特定信息進行選擇,在關(guān)閉這個Activity后,用戶的選擇信息需要返回給未關(guān)閉的那個Activity。我們將先啟動的Activity稱為父Activity,后啟動的Activity稱為子Activity。
針對這樣的情況,一般按照如下步驟獲取返回值:利用startActivityForResult()方法啟動子Activity。設置子Activity的返回值在父Activity獲取返回值。創(chuàng)建父Activity,啟動子Activity
創(chuàng)建一個按鈕time_course_button和一個文本框time_course_editText,點擊按鈕啟動子Activity—CourseTimeActivity,文本框用來顯示從子Activity中返回的數(shù)值。8.3Intent活動啟動
活動間數(shù)據(jù)傳遞創(chuàng)建父Activity,啟動子ActivitypublicclassCourseEditActivityextendsActivity{
privateButtontime_course_button;
privateEditTexttime_course_editText;
privateintCOURSETIME=0;
privateintweekday;
……
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_course_edit);
……
time_course_button=(Button)findViewById(R.id.time_course_button);
time_course_editText=(EditText)findViewById(R.id.time_course_editText);
(轉(zhuǎn)下頁)8.3Intent活動啟動
活動間數(shù)據(jù)傳遞創(chuàng)建父Activity,啟動子Activity(j接上頁)
time_course_button.setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewv){
//創(chuàng)建對應于目標Activity的Intent
Intentintent=getIntent();
intent.setClass(CourseEditActivity.this,CourseTimeActivity.class);
//啟動Activity,并可返回結(jié)果,COURSETIME為請求碼 CourseEditActivity.this.startActivityForResult(intent,COURSETIME); }
});……}8.3Intent活動啟動
活動間數(shù)據(jù)傳遞等待Activity數(shù)據(jù)傳輸
當CourseTimeActivity啟動后,作為父Activity的CourseEditActivity需要等待其傳回結(jié)果,由于何時傳回結(jié)果具有不確定性,我們重寫了onActivityResult()方法,處理子Activity的返回值。當子Activity關(guān)閉時,父Activity的onActivityResult()方法就被開始調(diào)用。@OverridepublicvoidonActivityResult(intrequestCode,intresultCode,Intentintent){//當請求碼為COURSETIME,結(jié)果碼為Activity.RESULT_OK,進行一定處理
if(requestCode==COURSETIME&&resultCode==Activity.RESULT_OK){
//取出放置在Bundle對象里的數(shù)據(jù)Bundlebundle=intent.getExtras();
StringresultTime=bundle.getString("time_1");
weekday=bundle.getInt("weekday_1");
//修改文本框里面的數(shù)據(jù)
time_course_editText.setText(resultTime);
}}8.3Intent活動啟動
活動間數(shù)據(jù)傳遞Activity間數(shù)據(jù)傳輸
程序為列表設置了監(jiān)聽器,用戶單擊選項后,將值返回給父Activity,并結(jié)束當前Activity。publicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intarg2,longarg3){
//TODOAuto-generatedmethodstub
//創(chuàng)建對應于目標Activity的Intent
Intentintent=newIntent(CourseTimeActivity.this,CourseEditActivity.class);
//向Bundle對象放入需要傳遞的數(shù)據(jù)
Bundlebundle=newBundle();
bundle.putString("time_1",arg0.getItemAtPosition(arg2).toString());
bundle.putInt("weekday_1",arg2+1);
intent.putExtras(bundle);
//設置結(jié)果碼,并設置結(jié)束后退回的Activity
CourseTimeActivity.this.setResult(RESULT_OK,intent);
//結(jié)束當前Activity
CourseTimeActivity.this.finish();}8.3Intent活動啟動
測試Intent活動啟動測試Intent顯式啟動
我們在Intent顯式啟動的函數(shù)中,加入輸出字符串的代碼。在執(zhí)行該方法時,Activity顯式啟動后,頁面發(fā)生跳轉(zhuǎn),并且可以輸出該字符串,說明執(zhí)行該方法成功。button_add.setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewv){
//TODOAuto-generatedmethodstub
Intenti=newIntent(CourseActivity.this,CourseAddActivity.class);
……
System.out.println("已顯式啟動CourseAddActivity");}});
顯式啟動方法執(zhí)行成功,輸出“已顯式啟動CourseAddActivity”的字符串效果圖8.3Intent活動啟動
測試Intent活動啟動測試Intent隱式啟動
在Intent隱式啟動的函數(shù)中,加入輸出字符串的代碼。在執(zhí)行該方法時,Activity隱式啟動后,頁面發(fā)生跳轉(zhuǎn),并且可以輸出該字符串,說明執(zhí)行該方法成功。button_add.setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewv){
//TODOAuto-generatedmethodstub
StringactionName="com.coursemis.CourseAddActivity";
……
System.out.println("已隱式啟動CourseAddActivity");
}});
隱式啟動方法執(zhí)行成功,輸出“已隱式啟動CourseAddActivity”的字符串效果圖8.3Intent活動啟動
測試Intent活動啟動測試Bundle在Activity間的數(shù)據(jù)交換
從CourseActivity通過點擊add按鈕跳轉(zhuǎn)到CourseAddActivity界面,為了將課程添加到該教師名下,需要傳遞教師id。我們可以通過比較傳入前與接收后的數(shù)據(jù)是否相同來判斷數(shù)據(jù)是夠傳輸成功。
button_add.setOnClickListener(newOnClickListener(){ @Override publicvoidonClick(Viewv){
……//測試發(fā)送到下層Activity的數(shù)據(jù)
System.out.println("發(fā)送:teacherid="+teacherid); System.out.println("已顯式啟動CourseAddActivity"); }});teacherid=preferences.getInt("teacherid",0);//測試下層Activity接收到的數(shù)據(jù)System.out.println("接收:teacherid="+teacherid);8.3Intent活動啟動
測試Intent活動啟動測試Activity的返回值
listView_coursetimeList.setOnItemClickListener(newOnItemClickListener(){@OverridepublicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intarg2,longarg3){//TODOAuto-generatedmethodstub
Intentintent=newIntent(CourseTimeActivity.this,CourseEditActivity.class);
Bundlebundle=newBundle();
//測試發(fā)送到上層Activity的數(shù)據(jù)
System.out.println(arg0.getItemAtPosition(arg2).toString());
……
}});publicvoidonActivityResult(intrequestCode,intresultCode,Intentintent){
if(requestCode==COURSETIME&&resultCode==Activity.RESULT_OK){
……
System.out.println(resultTime);
time_course_editText.setText(resultTime);}}8.4
廣播事件
廣播,第一時間就會想到電臺的廣播,可以播放各種消息。其實,Android的廣播就是具備這樣的功能。
廣播BoardcastReceiver作為Android四大組件之一,其本質(zhì)就是一個全局監(jiān)聽器,用來監(jiān)聽系統(tǒng)的全局廣播。廣播消息的內(nèi)容多種多樣,可以是與應用程序密切相關(guān)的數(shù)據(jù)信息,也可以是Android的系統(tǒng)信息,例如網(wǎng)絡連接變化、電池電量變化、接收到短信和系統(tǒng)設置變化等等,系統(tǒng)根據(jù)自身需要,選擇不同的廣播。
廣播簡介8.4
廣播事件
實現(xiàn)BoardcastReceiver實現(xiàn)廣播的步驟與注意事項
啟動BoardcastReceiver的方法和啟動Activity的方法相同,如下是啟動BoardcastReceiver的步驟:構(gòu)造需要啟動BoardcastReceiver的Intent調(diào)用sendBoardcast()方法來啟動指定的BoardcastReceiver
實現(xiàn)BoardcastReceiver也非常簡單,重寫B(tài)oardcastReceiver的onReceive()方法即可。由于BoardcastReceiver的作用是監(jiān)聽系統(tǒng)的全局消息,因此,當廣播的消息被接受后,系統(tǒng)就會認定該對象已經(jīng)不再是一個活動的對象了,便結(jié)束了它的生命周期。因此,在BoardcastReceiver中盡量不要處理太多邏輯問題,建議復雜的邏輯交給Activity或者Service去處理。8.4
廣播事件
實現(xiàn)BoardcastReceiver創(chuàng)建廣播
創(chuàng)建一個Intent對象,接下來,設置Intent的Action屬性,實現(xiàn)廣播操作,最后調(diào)用sendBroadcast()函數(shù),就可把Intent攜帶的消息廣播出去。因為要在Intent傳遞額外數(shù)據(jù),可以用Intent的putExtra()方法。voidbroadcast(){//創(chuàng)建Intent對象
Intentintent=newIntent(); //設置Intent的Action屬性
intent.setAction("com.coursemis.action.BROAD_ACTION"); intent.putExtra("msg","您有一些課程還沒有學生!?。?); //發(fā)送廣播
sendBroadcast(intent);}8.4
廣播事件
實現(xiàn)BoardcastReceiver廣播調(diào)用
啟動廣播的代碼完成了,那么便需要考慮調(diào)用廣播的位置和條件。client.post(HttpUtil.server_course_teacher,params,
newJsonHttpResponseHandler(){
@Override
publicvoidonSuccess(intarg0,JSONObjectarg1){
//TODOAuto-generatedmethodstub
……
//判斷是否從服務器端傳來Flag_Empty_Student的標志,如果有,就把該可課程的id放入courseid_empty_student
if(object.optBoolean("Flag_Empty_Student")){ courseid_empty_student.add(object.optInt("CId"));
}
……//如果courseid_empty_student容量不為0,則發(fā)送廣播
if(courseid_empty_student.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年09月河北2024中國光大銀行石家莊分行校園招考筆試歷年參考題庫附帶答案詳解
- 2025年度高科技專利授權(quán)合同標的許可范圍界定4篇
- 2024年09月2024浦發(fā)銀行呼和浩特分行校園招聘筆試歷年參考題庫附帶答案詳解
- 2025年水利工程沉降監(jiān)測與水資源節(jié)約合同4篇
- 二零二五年度環(huán)保型抹灰工程安全質(zhì)量保證合同4篇
- 二零二五年度精密電子組件模具定制及生產(chǎn)服務合同4篇
- 2025年度新型環(huán)保材料采購承包合同范本4篇
- 2025年度智能觸控一體機校園教育供銷合作合同4篇
- 2025年煙草行業(yè)環(huán)保責任履行合同3篇
- 2024年07月內(nèi)蒙古內(nèi)蒙古鄂爾多斯杭錦旗農(nóng)村信用合作聯(lián)社招考筆試歷年參考題庫附帶答案詳解
- 人教版(2025新版)七年級下冊英語:寒假課內(nèi)預習重點知識默寫練習
- 藝術(shù)品捐贈協(xié)議
- 【公開課】同一直線上二力的合成+課件+2024-2025學年+人教版(2024)初中物理八年級下冊+
- 高職組全國職業(yè)院校技能大賽(嬰幼兒照護賽項)備賽試題庫(含答案)
- 2024年公安部直屬事業(yè)單位招聘筆試參考題庫附帶答案詳解
- NB-T 47013.15-2021 承壓設備無損檢測 第15部分:相控陣超聲檢測
- 司爐崗位應急處置卡(燃氣)參考
- 10KV供配電工程施工組織設計
- 終端攔截攻略
- 藥物外滲處理及預防【病房護士安全警示教育培訓課件】--ppt課件
- 紙箱檢驗標準新
評論
0/150
提交評論