24469-android開發(fā)工程師教程倪紅軍chap_第1頁
24469-android開發(fā)工程師教程倪紅軍chap_第2頁
24469-android開發(fā)工程師教程倪紅軍chap_第3頁
24469-android開發(fā)工程師教程倪紅軍chap_第4頁
24469-android開發(fā)工程師教程倪紅軍chap_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Android開發(fā)工程師教程第五章 菜單和對話框開發(fā)基礎(chǔ)篇目錄選項(xiàng)菜單1子菜單2快捷菜單3使用XML生成菜單4提示對話框56日期/時(shí)間選擇對話框7進(jìn)度條對話框8本章小結(jié)9項(xiàng)目實(shí)訓(xùn)選項(xiàng)菜單Android系統(tǒng)的菜單支持主要通過 android.view.Menu接口來體現(xiàn)的,Android系統(tǒng)用它來管理各種菜單項(xiàng)。Menu接口中常用的方法見表5-1。選項(xiàng)菜單選項(xiàng)菜單,實(shí)現(xiàn)代碼如下:final static int M1=Menu.FIRST; final static int M2=Menu.FIRST+1; public boolean onCreateOptionsMenu(Menu menu

2、) menu.add(0, M1, 0, 向左); menu.add(0, M2, 0, 向右); return true;可以用一個(gè)MenuItem引用變量來接收一個(gè)item項(xiàng),代碼如下:MenuItem item1=menu.add(0, M1, 0, 向左);item1.setIcon(R.drawable.left);item1.setShortcut(1, f);獲得MenuItem對象后,就可以調(diào)用setIcon()方法設(shè)置選項(xiàng)菜單的圖標(biāo),圖標(biāo)要預(yù)先保存在res/drawable目錄中。也可以調(diào)用setShortcut()方法為菜單項(xiàng)設(shè)置快捷鍵,該方法的第一個(gè)參數(shù)是數(shù)字快捷鍵,第二

3、個(gè)參數(shù)是全鍵盤快捷鍵。選項(xiàng)菜單如果希望選擇菜單某個(gè)選項(xiàng)時(shí),執(zhí)行相應(yīng)動(dòng)作,需要覆寫onOptionsItemSelected (MenuItem item)方法,方法的參數(shù)為用戶所選擇的那個(gè)菜單項(xiàng),代碼如下:public boolean onOptionsItemSelected(MenuItem item) switch(item.getItemId() case M1: tvmsg.setText(向左); return true; case M2: tvmsg.setText(向右); return true; return false; 目錄子菜單2選項(xiàng)菜單1快捷菜單3使用XML生成菜單

4、4提示對話框56日期/時(shí)間選擇對話框7進(jìn)度條對話框8本章小結(jié)9項(xiàng)目實(shí)訓(xùn)子菜單Android系統(tǒng)提供的子菜單(SubMenu)用于更加詳細(xì)地顯示信息,選擇子菜單將彈出懸浮窗口顯示子菜單項(xiàng)。但是Android系統(tǒng)中的子菜單不支持嵌套,即子菜單中不能再包括其他子菜單。子菜單(SubMenu)繼承于Menu,常用的方法見表5-2。子菜單和選項(xiàng)菜單一樣,子菜單也是通過重載onCreateOptionsMenu()方法創(chuàng)建,不同的是子菜單需要調(diào)用menu.addSubMenu()方法,而不是menu.add()方法,具體代碼如下:SubMenu sbmenu=menu.addSubMenu(0, MENU

5、_area, 1, 選擇地區(qū));sbmenu.setIcon(R.drawable.area);sbmenu.setHeaderTitle(選擇居住的城市);sbmenu.setHeaderIcon(R.drawable.area);sbmenu.add(0,MENU_area +1,0,北京);sbmenu.add(0,MENU_area +2,1,上海);目錄快捷菜單3選項(xiàng)菜單1子菜單2使用XML生成菜單4提示對話框56日期/時(shí)間選擇對話框7進(jìn)度條對話框8本章小結(jié)9項(xiàng)目實(shí)訓(xùn)快捷菜單快捷菜單又稱為上下文菜單,與Windows操作系統(tǒng)中的快捷菜單一樣都是與某個(gè)組件相關(guān)的菜單,只是彈出的方式不一

6、樣,Windows操作系統(tǒng)中的快捷菜單是右擊彈出,而Android系統(tǒng)中的快捷菜單是在某個(gè)組件(視圖)上長按(超過2秒)后彈出??旖莶藛?ContextMenu)繼承于Menu,常用的方法見表5-3。快捷菜單創(chuàng)建快捷菜單,需要覆寫onCreateContextMenu()方法,在該方法中創(chuàng)建菜單項(xiàng),以及設(shè)置菜單項(xiàng)的相關(guān)屬性。當(dāng)需要處理菜單項(xiàng)的單擊事件時(shí),需要覆寫onContextItemSelected()方法,每次使用快捷菜單都會(huì)調(diào)用onCreateContextMenu()方法,創(chuàng)建快捷菜單的關(guān)鍵代碼如下:final static int M1=Menu.FIRST;final stati

7、c int M2=Menu.FIRST+1;final static int M3=Menu.FIRST+2;Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) super.onCreateContextMenu(menu, v, menuInfo); menu.setHeaderTitle(請選擇某門課程); menu.add(0, M1, 0, 軟件工程); menu.add(0, M2, 1, android軟件開發(fā)); menu.add(0, M3, 1,

8、C#程序設(shè)計(jì)); 快捷菜單快捷菜單的單擊事件處理:處理菜單的單擊事件需要覆寫onContextItemSelected(MenuItem item)方法,當(dāng)菜單項(xiàng)被選中時(shí),自動(dòng)調(diào)用該方法,方法中的參數(shù)就是被選中的菜單項(xiàng)。實(shí)現(xiàn)代碼如下: public boolean onContextItemSelected(MenuItem item) switch(item.getItemId() case M1: tvmsg.setText(軟件工程); return true; case M2: tvmsg.setText(android軟件開發(fā)); return true; case M3: tvms

9、g.setText(C#程序設(shè)計(jì)); return true; return false; 快捷菜單快捷菜單是與某個(gè)組件相關(guān)的菜單,所以創(chuàng)建好快捷菜單后還需要將其和某個(gè)組件關(guān)聯(lián)起來,也就是需要調(diào)用registerForContextMenu(View view)方法,將快捷菜單注冊到View上,實(shí)現(xiàn)View組件與快捷菜單的關(guān)聯(lián)。實(shí)例代碼如下: public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); tvmsg=(TextV

10、iew)findViewById(R.id.tvmsg); this.registerForContextMenu(tvmsg);目錄使用XML生成菜單4選項(xiàng)菜單1快捷菜單3子菜單2提示對話框56日期/時(shí)間選擇對話框7進(jìn)度條對話框8本章小結(jié)9項(xiàng)目實(shí)訓(xùn)使用XML生成菜單使用XML文件創(chuàng)建菜單的步驟如下。(1) 在項(xiàng)目的res目錄下創(chuàng)建menu文件夾,并在menu目錄下使用與menu相關(guān)的元素定義XML文件。在XML文件中,有3個(gè)有效的元素:menu、group和item。item和group必須是menu的子節(jié)點(diǎn)元素,且item必須是group的子節(jié)點(diǎn)元素。但是在創(chuàng)建子菜單時(shí),menu可作為it

11、em的子節(jié)點(diǎn)元素。group常用屬性見表5-4,item常用屬性見表5-5。(2) 使用XML文件的資源ID,將XML文件中定義的菜單項(xiàng)添加到menu對象中。(3) 響應(yīng)菜單項(xiàng)時(shí),使用每個(gè)菜單項(xiàng)對應(yīng)的資源ID。使用XML生成菜單使用XML生成菜單具體實(shí)現(xiàn):(1) 定義菜單資源文件。在res目錄中創(chuàng)建menu文件夾,并在menu中創(chuàng)建一個(gè)XML資源文件,本案例XML資源文件的文件名為menu.xml,詳細(xì)代碼如下: 以上代碼使用節(jié)點(diǎn)定義了4個(gè)菜單項(xiàng),并且使用節(jié)點(diǎn)將4個(gè)菜單項(xiàng)分為兩組。使用XML生成菜單(2) 使用MenuInflater添加菜單項(xiàng)。MenuInflater在Android中建立了

12、從資源文件到對象的橋梁,MenuInflater對象通過Activity的getMenuInflater()方法得到,通過調(diào)用inflate(int menuRes,Menumenu)方法把菜單資源文件轉(zhuǎn)換為對象并添加到menu對象中。代碼如下:public boolean onCreateOptionsMenu(Menu menu) MenuInflater inflater=getMenuInflater(); inflater.inflate(R.menu.menu, menu); return true;inflate(int menuRes,Menumenu)方法的第一個(gè)參數(shù)表示待轉(zhuǎn)

13、換的菜單資源文件,第二個(gè)參數(shù)表示菜單對象。(3) 響應(yīng)菜單項(xiàng)。如果希望選擇菜單某個(gè)選項(xiàng)時(shí),執(zhí)行相應(yīng)動(dòng)作,同樣需要覆寫onOptionsItemSelected(MenuItem item)方法目錄提示對話框5選項(xiàng)菜單1快捷菜單3使用XML生成菜單4子菜單26日期/時(shí)間選擇對話框7進(jìn)度條對話框8本章小結(jié)9項(xiàng)目實(shí)訓(xùn)提示對話框在Android開發(fā)中,經(jīng)常需要在Android應(yīng)用程序界面上彈出對話框,以節(jié)省界面空間。Dialog的直接子類有AlertDialog(提示對話框)、CharacterPickerDialog(字符選擇對話框);間接子類有DatePickDialog(日期選擇對話框)、Pro

14、gressDialog(進(jìn)度對話框)、TimePickerDialog(時(shí)間選擇對話框)。AlertDialog的功能比較強(qiáng)大,可以生成4種預(yù)定義對話框:(1) 帶消息和多個(gè)按鈕的提示對話框。(2) 帶列表和多個(gè)按鈕的列表對話框。(3) 帶多個(gè)單選列表項(xiàng)和多個(gè)按鈕的對話框。(4) 帶多個(gè)復(fù)選列表項(xiàng)和多個(gè)按鈕的對話框。提示對話框AlertDialog類的構(gòu)造方法全部都是protected的,所以不能直接通過AlertDialog類創(chuàng)建一個(gè)AlertDialog對象,但是可以通過其內(nèi)部類AlterDialog.Builder來創(chuàng)建,AlertDialog. Builder的常用方法見表5-6。提示

15、對話框1帶消息和按鈕的提示對話框此類對話框不需要界面布局,實(shí)現(xiàn)比較簡單,具體實(shí)現(xiàn)代碼如下: protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); AlertDialog.Builder alertDialog = new AlertDialog.Builder(this); / 設(shè)置標(biāo)題 alertDialog.setTitle(請認(rèn)真選擇); / 設(shè)置提示信息 alertDialog.setMessage(你喜歡

16、智能手機(jī)開發(fā)這門課嗎?); / 設(shè)置圖標(biāo) alertDialog.setIcon(R.drawable.ic_launcher); / 添加PositiveButton alertDialog.setPositiveButton(非常喜歡,new DialogInterface.OnClickListener() Override public void onClick(DialogInterface dialog, int which) / 設(shè)置選擇PositivieButton時(shí)所執(zhí)行的操作 ); / 添加NegativeButton alertDialog.setNegativeButt

17、on(不喜歡,new DialogInterface.OnClickListener() Override public void onClick(DialogInterface dialog, int which) / 設(shè)置選擇NegativeButton時(shí)所執(zhí)行的操作 ); / 添加NeutralButton alertDialog.setNeutralButton(一般般,new DialogInterface.OnClickListener() Override public void onClick(DialogInterface dialog, int which) / 設(shè)置選擇N

18、eutralButton時(shí)所執(zhí)行的操作 ); / 創(chuàng)建對話框 Dialog dialog = alertDialog.create(); / 顯示對話框 dialog.show(); 提示對話框2帶列表和按鈕的列表對話框 此類列表對話框也不需要界面布局,但與帶消息和按鈕的提示對話框不同的是,實(shí)現(xiàn)時(shí)需要先定 義在列表對話框中顯示的內(nèi)容,下述代碼中定義了一個(gè)字符串?dāng)?shù)組course,用于存放一組課程名;然后調(diào)用setItems(CharSequence items, DialogInterface. OnClickListener listener)方法,實(shí)現(xiàn)顯示列表項(xiàng),該方法的第一個(gè)參數(shù)就是對應(yīng)的

19、列表項(xiàng)字符串?dāng)?shù)組;第二個(gè)參數(shù)是對選項(xiàng)的監(jiān)聽事件。運(yùn)行效果如圖5.7所示,詳細(xì)代碼如下:public class MainActivity extends Activity private String course=new String語文,數(shù)學(xué),英語,化學(xué),物理; /定義需要顯示的列表內(nèi)容 Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); AlertDialog.Builder alertD

20、ialog=new AlertDialog.Builder(this); alertDialog.setTitle(你喜歡哪門功課?);/設(shè)置標(biāo)題 alertDialog.setIcon(R.drawable.ic_launcher);/設(shè)置圖標(biāo) /設(shè)置列表項(xiàng)對話框 alertDialog. setItems(course,new DialogInterface.OnClickListener() Override public void onClick(DialogInterface dialog, int which) Toast.makeText(MainActivity.this,co

21、ursewhich,Toast. LENGTH_SHORT).show(); ); /設(shè)置PositivieButton alertDialog.setPositiveButton(確定,new DialogInterface.OnClickListener() Override public void onClick(DialogInterface dialog, int which) /設(shè)置選擇PositivieButton時(shí)所執(zhí)行的操作 ); /設(shè)置NegativeButton alertDialog.setNegativeButton(取消, new DialogInterface.O

22、nClickListener() Override public void onClick(DialogInterface dialog, int which) /設(shè)置選擇NegativeButton時(shí)所執(zhí)行的操作 ); Dialog dialog= alertDialog.create();/創(chuàng)建對話框 dialog.show(); /顯示對話框 提示對話框3帶單選列表項(xiàng)和按鈕的單選列表對話框此類對話框的實(shí)現(xiàn)只需要將列表對話框中的setItems(CharSequenceitems,DialogInterface. OnClickListenerlistener)方法修改為setSingle

23、ChoiceItems(CharSequenceitems, int checkedItem, DialogInterface.OnClickListenerlistener)方法,該方法中的第一個(gè)參數(shù)表示對應(yīng)列表項(xiàng)字符串?dāng)?shù)組;第二個(gè)參數(shù)表示默認(rèn)選中的item項(xiàng)的ID;第三個(gè)參數(shù)表示選中選項(xiàng)的監(jiān)聽事件。程序運(yùn)行效果如圖5.8所示。提示對話框4帶復(fù)選列表項(xiàng)和按鈕的復(fù)選列表對話框此類對話框的實(shí)現(xiàn),只需要將單選列表對話框中的setSingleChoiceItems (CharSequence items, int checkedItem,DialogInterface.OnClickListener

24、listener)方法修改為setMultiChoiceItems (CharSequenceitems, boolean checkedItems,DialogInterface.OnMultiChoice ClickListener listener)方法,setMultiChoiceItems()方法中第一個(gè)參數(shù)是對應(yīng)列表項(xiàng)的字符串?dāng)?shù)組;第二個(gè)參數(shù)是一個(gè)布爾型的數(shù)組,用于表示復(fù)選框是否選中;圖5.9所示效果中默認(rèn)的是選中“語文”和“物理”復(fù)選框,所以定義的布爾型數(shù)組為:private boolean courseSelected=new booleantrue,false,false,f

25、alse, true;第三個(gè)參數(shù)表示選中選項(xiàng)的監(jiān)聽事件。提示對話框5自定義對話框(1) 自定義對話框的界面布局,本案例中用到了TextView組件和EditText組件。布局文件login.xml代碼如下 提示對話框(2).詳細(xì)代碼如下:public class MainActivity extends Activity Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); / 取得自定義view

26、 LayoutInflater layoutInflater = LayoutInflater.from(this); View loginView = layoutInflater.inflate(R.layout.login, null); AlertDialog.Builder alertDialog = new AlertDialog.Builder(this); alertDialog.setTitle(用戶登錄); alertDialog.setIcon(R.drawable.ic_launcher); / 為對話框設(shè)置視圖 alertDialog.setView(loginVie

27、w); alertDialog.setPositiveButton(登錄, new DialogInterface.OnClickListener() Override public void onClick(DialogInterface dialog, int which) ); alertDialog.setNegativeButton(取消, new DialogInterface.OnClickListener() Override public void onClick(DialogInterface dialog, int which) ); alertDialog.create

28、(); alertDialog.show(); 目錄日期/時(shí)間選擇對話框6選項(xiàng)菜單1快捷菜單3使用XML生成菜單4提示對話框52子菜單7進(jìn)度條對話框8本章小結(jié)9項(xiàng)目實(shí)訓(xùn)日期/時(shí)間選擇對話框Android系統(tǒng)開發(fā)中提供了DatePickerDialog組件和TimePickerDialog組件,分別用于選擇日期和時(shí)間。它們與DatePicker和TimePicker不同的是以彈出式對話框形式顯示在界面上。1界面設(shè)計(jì)界面中用兩個(gè)TextView組件分別顯示日期和時(shí)間,用兩個(gè)Button組件分別用于單擊后彈出日期對話框和時(shí)間對話框,用戶在日期和時(shí)間對話框中修改日期和時(shí)間后,將新的日期和時(shí)間信息顯示在

29、TextView組件上。日期/時(shí)間選擇對話框2創(chuàng)建對話框創(chuàng)建對話框部分,對兩個(gè)按鈕實(shí)現(xiàn)單擊事件監(jiān)聽,分別調(diào)用showDateDialog()方法和showTimeDialog()方法來創(chuàng)建日期對話框和時(shí)間對話框。在showDateDialog()方法中調(diào)用了DatePickerDialog類的構(gòu)造方法DatePickerDialog(Context context, DatePickerDialog. OnDateSetListenercallBack, int year, int monthOfYear, int dayOfMonth)來創(chuàng)建對話框,方法中第一個(gè)參數(shù)表示創(chuàng)建DatePicke

30、rDialog的Activity;第二個(gè)參數(shù)表示監(jiān)聽日期發(fā)生改變的監(jiān)聽器;第三個(gè)參數(shù)表示年份;第四個(gè)參數(shù)表示月份;最后一個(gè)參數(shù)表示月份中哪一天。在showTimeDialog()方法中調(diào)用了TimePickerDialog類的構(gòu)造方法TimePickerDialog (Contextcontext,TimePickerDialog.OnTimeSetListenercallBack, int hourOfDay, int minute, boolean is24HourView),方法中第一個(gè)參數(shù)表示創(chuàng)建TimePickerDialog的Activity;第二個(gè)參數(shù)表示監(jiān)聽時(shí)間發(fā)生改變的監(jiān)聽器

31、;第三個(gè)參數(shù)表示小時(shí);第四個(gè)參數(shù)表示分鐘;最后一個(gè)參數(shù)表示是否是24小時(shí)制。需要注意的是,在創(chuàng)建日期對話框和時(shí)間對話框時(shí)分別需要實(shí)現(xiàn)OnDateSetListener和OnTimeSetListener接口。日期/時(shí)間選擇對話框/ 顯示日期對話框 protected void showDateDialog() OnDateSetListener Datelistener = new OnDateSetListener() Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMon

32、th) / 根據(jù)對話框上年、月、日的調(diào)整,設(shè)置日歷的年、月、日 cal.set(year, monthOfYear, dayOfMonth); / 創(chuàng)建日期格式器對象 SimpleDateFormat SDformat = new SimpleDateFormat(yyyy-MM-dd); / 將當(dāng)前日期按照格式顯示在TextView上 tvDate.setText(SDformat.format(cal.getTime(); ; / 根據(jù)Calendar對象獲取到的當(dāng)前年、月、日創(chuàng)建對話框 DatePickerDialog Datedialog = new DatePickerDialog(

33、MainActivity.this, Datelistener, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH); / 調(diào)用show()方法顯示對話框 Datedialog.show(); 日期/時(shí)間選擇對話框/ 顯示時(shí)間對話框 protected void showTimeDialog() OnTimeSetListener TimeListener = new OnTimeSetListener() Override public void onTimeSet(TimePicke

34、r view, int hourOfDay, int minute) / 根據(jù)時(shí)間對話框的調(diào)整,設(shè)置日歷對象的時(shí)、分 cal.set(Calendar.HOUR, hourOfDay); cal.set(Calendar.MINUTE, minute); tvTime.setText(hourOfDay + : + minute); ; / 根據(jù)Calendar對象獲取到的當(dāng)前時(shí)、分創(chuàng)建對話框,true表示按照24小時(shí)制來顯示時(shí)間 TimePickerDialog TimeDialog = new TimePickerDialog(MainActivity.this, TimeListener

35、, cal.get(Calendar.HOUR), cal.get(Calendar.MINUTE), true); / 調(diào)用show()方法顯示對話框 TimeDialog.show(); 目錄進(jìn)度條對話框7選項(xiàng)菜單1快捷菜單3使用XML生成菜單4提示對話框56日期/時(shí)間選擇對話框2子菜單8本章小結(jié)9項(xiàng)目實(shí)訓(xùn)進(jìn)度條對話框ProgressDialog(進(jìn)度條對話框)和ProgressBar(進(jìn)度條)有著異曲同工之處,都是用于顯示程序的執(zhí)行進(jìn)度,不同的是ProgressDialog以對話框的形式展示出來。ProgressDialog對話框也可以通過相應(yīng)方法設(shè)置對話框上顯示的文字、圖標(biāo)、進(jìn)度條的樣

36、式,當(dāng)然也需要使用線程來控制進(jìn)度條的顯示。ProgressDialog常用方法見表5-7進(jìn)度條對話框創(chuàng)建進(jìn)度條對話框通過調(diào)用setProgressStyle(ProgressDialog. STYLE_SPINNER)方法設(shè)置為圓形進(jìn)度條,調(diào)用setProgressStyle (ProgressDialog.STYLE_ HORIZONTAL)方法設(shè)置為長形的進(jìn)度條。然后使用表5-7中提供的方法設(shè)置進(jìn)度條的相關(guān)屬性。在使用setButton()方法為對話框設(shè)置按鈕時(shí),必須設(shè)置按鈕的文本和按鈕單擊的監(jiān)聽事件,最后使用線程更新進(jìn)度;另外setIndeterminate(boolean indete

37、rminate)方法的參數(shù)要為false,否則不可以顯示進(jìn)度條的進(jìn)度,而是循環(huán)在進(jìn)度條最小值和最大值之間移動(dòng),默認(rèn)的值為true。進(jìn)度條對話框具體實(shí)現(xiàn)代碼如下: protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); / 獲取按鈕對象 btnRectangle = (Button)findViewById(R.id.btnRectangle); / 創(chuàng)建長形進(jìn)度條對話框 btnRectangle.setOnClickListener(new OnClickListener() Override public void onClick(View arg0) count = 0; pgDialog = new ProgressDialog(MainActivity.this); / 設(shè)置長形風(fēng)格的進(jìn)度 pgDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); / 設(shè)置進(jìn)度條標(biāo)題 pgDialo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論