-
ontouchevent
查看全部 -
監聽器的作用
查看全部 -
//1.新建適配器 //2.將數據源放入適配器 //3.視圖加載適配器 ListView?lv?=?(ListView)findViewById(R.id.list_view); String[]?str?=?{"一","二","三"}; ArrayAdapter<String>?arr?=?new?ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,str); lv.setAdapter(arr);
查看全部 -
GridView關鍵屬性:
android:hotizontalSpacing 兩列之間的間距
android:verticalSpacing 兩行之間的間距
android:numColumns 每行顯示幾列
查看全部 -
DatePicker對象以init()這個方法來指定DatePicker初始的年、月、日及OnDateChangedListener()的事件;而TimePicker對象則是直接以setOnTimeChangedListener()事件來處理時間改變時程序要做的操作。
DatePickerDialog與TimePickerDialog與前面這兩種類型的對象的差別在于DatePicker與TimePicker是直接顯示在屏幕畫面上,而DatePickerDialog與TimePickerDialog對象則是以彈出Dialog的方式來顯示
查看全部 -
SimpleAdapter的構造方法中參數很多,寫的時候不要著急,要對應好布局文件中的id
監聽器和適配器是通用與很多android空件上,不局限于ListView
通過setOnScrollListener;監聽用戶手指滑動的動作,其實,我們常見的列表下拉刷新就是依此拓展出來的!
運用notifyDatasetchanged,動態更新視圖中所包含的數據
查看全部 -
監聽器
作用:
Android提供了很多事件監聽器,監聽器主要是為了去響應某個動作(動作的發起者可以是用戶的操作也可以是android系統本身),我們可以通過監控這種動作行為,來完成我們需要的程序功能。
OnItemClickListener:
可以處理視圖中單個條目的點擊事件
OnScrollListener:
監聽滾動的變化,可以用于視圖在滾動中加載數據
監聽器是程序和用戶(或者系統)交互的橋梁
實現過程:
視圖中直接設置監聽器,在相關的實現方法中補充需要的代碼即可
查看全部 -
IDE: Android Stuidio 3.2.1
ListViewMainActivity.java
public?class?ListViewMainActivity?extends?Activity?{ ????private?ListView?listView; ????private?ArrayAdapter<String>?arrayAdapter; ????private?SimpleAdapter?simpleAdapter; ????private?List<Map<String,Object>>?dataList; ????@Override ????protected?void?onCreate(Bundle?savedInstanceState)?{ ????????super.onCreate(savedInstanceState); ????????setContentView(R.layout.activity_main); ????????/** ?????????*?Adapter ?????????*?1.?新建一個數據適配器 ?????????*????ArrayAdapter(上下文,當前listView加載的每一個列表項對應的布局文件,數據源) ?????????*?2.?適配器加載數據源 ?????????*?3.?視圖(ListView)加載適配器 ?????????*/ ????????//listView?=?findViewById(R.id.listView); ????????//String[]?arrayData?=?{"imooc1",?"imooc2",?"imooc3",?"imooc4"};?//?適配器用到的數據 ????????//新建的數據適配器 ????????//arrayAdapter?=?new?ArrayAdapter<String>(this,?android.R.layout.simple_list_item_1,?arrayData); ????????//視圖(ListView)加載適配器 ????????//listView.setAdapter(arrayAdapter); ????????/** ?????????*?SimpleAdapter ?????????*?1.?新建一個數據適配器 ?????????*????SimpleAdapter(context,data,?resource,?from,?to); ?????????*?context:?上下文 ?????????*?data:?數據源,一個Map所組成的List集合, ?????????*????????每一個Map都會去對應ListView列表中的一行 ?????????*????????每一個Map(鍵-值對)中的鍵必須包含所有在from所指定的鍵 ?????????*?resource:列表項的布局文件ID ?????????*?from:Map中的鍵名 ?????????*?to:?綁定數據視圖中的ID,與From成對應的關系 ?????????*/ ????????listView?=?findViewById(R.id.listView); ????????dataList?=?new?ArrayList<Map<String,Object>>(); ????????simpleAdapter?=?new?SimpleAdapter(this,?getdata(),?R.layout.item,?new?String[]{"picture","itemText"},?new?int[]{R.id.picture,?R.id.itemText}); ????????listView.setAdapter(simpleAdapter); ????} ????private?List<Map<String,Object>>?getdata(){ ????????for?(int?i?=?0;?i?<?20;?i++)?{ ????????????Map?map?=?new?HashMap(); ????????????map.put("picture",R.mipmap.ic_snowman); ????????????map.put("itemText",?"Snowman"+i); ????????????dataList.add(map); ????????} ????????return?dataList; ????} }
activity_main.xml
<?xml?version="1.0"?encoding="utf-8"?> <LinearLayout?xmlns:android="http://schemas.android.com/apk/res/android" ????android:layout_width="match_parent" ????android:layout_height="match_parent" ????android:orientation="vertical"> ????<ListView ????????android:id="@+id/listView" ????????android:layout_width="match_parent" ????????android:layout_height="wrap_content"> ????</ListView> </LinearLayout>
item.xml
<?xml?version="1.0"?encoding="utf-8"?> <LinearLayout?xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <ImageView ????android:id="@+id/picture" ????android:layout_width="wrap_content" ????android:layout_height="wrap_content" ????android:layout_marginLeft="15dp" ????android:src="@mipmap/ic_snowman"> </ImageView> <TextView ????android:id="@+id/itemText" ????android:layout_width="wrap_content" ????android:layout_height="wrap_content" ????android:textSize="20dp" ????android:textColor="#0000f0" ????android:text="Snowman"/> </LinearLayout>
查看全部 -
ListViewMainActivity.java
public?class?ListViewMainActivity?extends?Activity?{ ????private?ListView?listView; ????private?ArrayAdapter<String>?arrayAdapter; ????private?SimpleAdapter?simpleAdapter; ????private?List<Map<String,Object>>?dataList; ????@Override ????protected?void?onCreate(Bundle?savedInstanceState)?{ ????????super.onCreate(savedInstanceState); ????????setContentView(R.layout.activity_main); ????????/** ?????????*?Adapter ?????????*?1.?新建一個數據適配器 ?????????*????ArrayAdapter(上下文,當前listView加載的每一個列表項對應的布局文件,數據源) ?????????*?2.?適配器加載數據源 ?????????*?3.?視圖(ListView)加載適配器 ?????????*/ ????????listView?=?findViewById(R.id.listView); ????????String[]?arrayData?=?{"imooc1",?"imooc2",?"imooc3",?"imooc4"};?//?適配器用到的數據 ????????//新建的數據適配器 ????????arrayAdapter?=?new?ArrayAdapter<String>(this,?android.R.layout.simple_list_item_1,?arrayData); ????????//視圖(ListView)加載適配器 ????????listView.setAdapter(arrayAdapter); ????} }
activity_main.xml
<?xml?version="1.0"?encoding="utf-8"?> <LinearLayout?xmlns:android="http://schemas.android.com/apk/res/android" ????android:layout_width="match_parent" ????android:layout_height="match_parent" ????android:orientation="vertical"> ????<ListView ????????android:id="@+id/listView" ????????android:layout_width="match_parent" ????????android:layout_height="wrap_content"> ????</ListView> </LinearLayout>
查看全部 -
string查看全部
-
此方法重點掌握
查看全部 -
Fragment和Activity相互通信的方法
查看全部 -
適配器的notifyDataSetChanged用于數據的刷新。查看全部
-
動態加載fragment查看全部
-
多個fragment切換查看全部
-
多個fragment查看全部
-
多個fragment查看全部
-
ListView相關的適配器,監聽器
查看全部 -
廣播接收者相當于全局事件的接收器
查看全部 -
新的盲點,新的方法,
在打開彈出框,不管是dialog還是popupWindow等等的彈出框時,
先判斷是否為空==null
當為空的時候開始部署
同樣在關閉時先判斷是否為空并且正在顯示
當都滿足時 執行.dismiss()方法
并且將其制空==null
查看全部 -
adapter.notifyDataSetChanged()
通知UI數據改變
查看全部 -
Content Provider 管理數據庫訪問以及程序內或程序間數據共享的
<provider android:name="com.example.manifest.provider">
</provider>
查看全部
舉報