Android基礎及應用 Intent的呼叫
一、實驗目的
1. 瞭解Intent的組成;
2. 掌握使用Intent啟動Activity的方法;
3. 掌握獲取Activity返回值的方法。
二、實驗過程
在實驗一的工程基礎上,新增Activity,利用Intent實現Activity元件之間的相互呼叫。
本實驗中涉及的相關資料項可以自行設計,也可參考“4、附錄”中給出的資料。
1、建立資訊顯示介面
建立新的Blank Activity,Activity Name和Layout Name修改為有實際含義的名稱,介面如圖2.1所示。
圖2.1 資訊顯示介面
點選圖1.4中的“檢視”選單項將會啟動圖2.1的資訊顯示介面,此時介面上應該顯示出所選擇檢視的姓名的所有欄位資訊。
點選“返回”按鈕將會回到圖1.1的基本資訊介面。
圖1.1基本資訊介面
2、建立專業設定介面
建立新的Blank Activity,Activity Name和Layout Name修改為有實際含義的名稱,介面如圖2.2所示。
圖2.2 專業設定介面
點選圖1.3中的“專業設定”子選單項將會啟動圖2.2的專業設定介面,此時介面上應該顯示出圖1.1的專業Spinner控制元件中列出的所有專業資訊。
點選“新增”按鈕則把EditText控制元件中輸入的專業名稱加入下面的ListView控制元件列表,如果EditText控制元件為空,則要給出相應提示。介面如圖1所示
圖1 新增專業事件
點選“返回”按鈕將會回到圖1.1的基本資訊介面,此時在專業設定介面上做的任何改變都應該給出廣播訊息提示,並在圖1.1的專業Spinner控制元件中體現出來。效果如圖2所示。
圖2返回按鈕事件
點選“新增”按鈕程式碼:
public void onClick(View arg0) {
// TODO Auto-generated method stub
majorName1 = majorName.getText().toString()//獲取id為majorName的控制元件的值
if(majorName1 == null||majorName1.length()<=0)
Toast.makeText(getApplicationContext(), "專業名不能為空", Toast.LENGTH_LONG).show();
else
list.add(majorName1); //數列新增majorName
}
});
點選“返回”按鈕程式碼:
//設定返回鍵的內容
public void onClick(View arg0) {
// TODO Auto-generated method stub
Uri data=null;
Intent result=new Intent(null,data);
result.putStringArrayListExtra("major", list);
setResult(RESULT_OK,result); //結果碼RESULT_OK對應返回值result
finish();
}
});
}
//獲取子Activity的返回值的類
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode){ //判斷子Activity
case sub2:
if(resultCode==Activity.RESULT_OK){ //判斷返回的資料
ArrayList<String> list1=data.getStringArrayListExtra("major");
list=list1; //修改專業數列
ArrayAdapter<String> spinnerAdapter=newArrayAdapter<String>(this,android.R.layout.simple_spinner_item,list1);
spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(spinnerAdapter);
break;
}
}
}
}
3、新增快捷選單
為專業設定介面上的ListView控制元件新增一個快捷選單,包含“修改”和“刪除”兩個選單項,效果如圖2.3所示。
圖2.3專業設定快捷選單
點選“修改”選單項則會根據EditText控制元件中輸入的內容修改所選擇項的專業名稱,同時更新下面的ListView控制元件列表,如果EditText控制元件為空,則要給出相應提示。效果如圖3所示。
圖3 修改選單事件
點選“刪除”選單項則刪除所選擇項的專業名稱,同時更新下面的ListView控制元件列表。效果如圖4所示。
圖4 刪除選單事件
“修改”選單和“刪除”選單的程式碼:
final static int SHORTCUTMENU_1=Menu.FIRST;
final static int SHORTCUTMENU_2=Menu.FIRST+1;:
//listView2控制元件的快捷選單
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// TODO Auto-generated method stub
super.onCreateContextMenu(menu, v, menuInfo);
menu.add(0,SHORTCUTMENU_1,0,"修改");
menu.add(0,SHORTCUTMENU_2,0,"刪除");
}
//響應快捷選單選擇事件的類
public boolean onContextItemSelected(MenuItem item){
switch(item.getItemId()){
case SHORTCUTMENU_1:
majorName1 = majorName.getText().toString(); //獲取id為majorName的控制元件的值
if(majorName1 == null||majorName1.length()<=0)
Toast.makeText(getApplicationContext(), "專業名不能為空", Toast.LENGTH_LONG).show();
else
list.set(number,majorName1);
ArrayAdapter<String> listAdapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,list);
listView2.setAdapter(listAdapter);//將數列加入listView2列表中
return true;
case SHORTCUTMENU_2:
list.remove(number);
ArrayAdapter<String> listAdapter1=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,list);
listView2.setAdapter(listAdapter1);//將數列加入listView2列表中
return true;
}
return false;
}
相關文章
- Android基礎及應用 Service的使用Android
- 應用程式基礎知識:activity和intent——Android開發祕籍IntentAndroid
- Android基礎及應用 介面設計Android
- Android之Intent顯示和隱式呼叫AndroidIntent
- Android中的intentAndroidIntent
- NeurophStudio安裝及基礎應用
- Python基礎語法及應用Python
- Android Intent ServiceAndroidIntent
- Android Protobuf應用及原理Android
- nginx的基礎應用(續)Nginx
- Android基礎與應用 資料儲存與訪問Android
- 移動測試基礎 Android 應用測試總結Android
- echarts基礎應用Echarts
- shell基礎應用
- python基礎應用Python
- Sentinel基礎應用
- Java基礎——方法的呼叫Java
- Android 基礎知識課程助您輕鬆構建應用Android
- Windows應用程式基礎Windows
- Linux應用——程序基礎Linux
- Ubuntu Server 基礎應用UbuntuServer
- Android中整合FFmpeg及NDK基礎知識Android
- Android之Intent的setClass和setClassName的區別AndroidIntent
- TS基礎應用 & Hook中的TSHook
- android基礎學習-android篇day12-android的UI基礎入門AndroidUI
- Android學習筆記(建立Menu,Intent的使用)Android筆記Intent
- 【筆記】【Android】Manifest中的intent-filter使用筆記AndroidIntentFilter
- Android中的Intent Filter匹配規則介紹AndroidIntentFilter
- 應用基礎框架全面解析框架
- Linux下Nginx基礎應用LinuxNginx
- 【基礎梳理】cookie、session、sessionStorage、localStorage之間的區別及應用場景CookieSession
- Android中mmap原理及應用簡析Android
- android驅動學習入門-android應用怎麼呼叫驅動2Android
- Android Intent 傳遞資料大小限制AndroidIntent
- 大模型基礎應用框架(ReACTSFTRAG)技術創新及零售業務落地應用大模型框架React
- 【Abyss】Android 平臺應用級系統呼叫攔截框架Android框架
- Android基礎—FragmentAndroidFragment
- Mac基礎設定—應用程式Mac