㈠ android基礎知識
一、activity
1.一個activity就是一個類,繼承activity;
2.需要復寫onCreate()方法;
3.每一個activity都需要在AndroidMainfest.xml清單上進行配置;
4.為activity添加必要的控制項。
二、布局
線性布局:LinearLayout
1.填滿父空間:fill_parent、match_parent
2.文本多大空間就有多大:warp_content
3.文字對齊方式:gravity
4.占屏幕的比例:layout_weight="1" 水平方向,則width=0,垂直方向,則height=0
5.一行顯示,空間不夠會省略:singleLine="ture" false會換行
6.背景:background="#ffffff"
7.水平布局:orientation="horizontal"
垂直布局:orientation="vertivcal"
表格布局:TableLayout
1.內邊距:padding
2.外邊距:marginLeft\Start、Right\End、Top、Bottom
三、RelativeLayout相對布局
layout_above 將該控制項的底部置於給定ID控制項之上
layout_below 將該控制項的頂部置於給定ID控制項之下
layout_toLeftOf 將該控制項的右邊緣和給定ID控制項的左邊緣對齊
layout_toRightOf 將該控制項的左邊緣和給定ID控制項的右邊緣對齊
layout_alignBaseline 該控制項的baseline和給定ID的控制項的Baseline對齊
layout_alignBottom 該控制項的底部邊緣和給定ID的控制項的底部邊緣對齊
layout_alignLeft 該控制項的左邊緣和給定ID的控制項的左邊緣對齊
layout_alignRight 該控制項的右邊緣和給定ID的控制項的右邊緣對齊
layout_alignTop 該控制項的頂部邊緣和給定ID的控制項的頂部邊緣對齊
layout_alignparentBottom 如果該值為true,則該控制項的底部和父控制項的底部對齊layout_alignParentLeft 如果該值為true,則該控制項的左邊和父控制項的左邊對齊
layout_alignParentRight 如果該值為true,則該控制項的右邊和父控制項的右邊對齊
layout_alignParentTop 如果該值為true,則該控制項的上邊和父控制項的上邊對齊
layout_centerHorizontal 如果該值為true,則該控制項將被置於水平方向的中央
layout_centerInParent 如果該值為true,則該控制項將被置於父控制項水平和垂直方向的中央
layout_centerVertival 如果該值為true,則該控制項將被置於垂直方向的中央
四、一個Intent對象包含一組信息
1.Component name
2.Action
3.Data
4.Category
5.Extras
6.Flags
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent); //startActivity方法
intent.putExtra("Key", "Value"); //鍵值對
intent = getIntent();
String value = intent.getStringExtra("Key"); //通過鍵提取數據
五、初級控制項:EditText、TextView、Button
1.獲取EditText的值
String value = EditText.getText().toString();
2.將值放到Intent對象中
Intent intent = new Intent();
intent.putExtra("one",value )
intent.setCalss(Activity.this, OtherActivity.class);
3.使用這個Intent對象來啟動Otheractivity
Activity.this.startActivity(intent);
4.將監聽器的對象綁定到按鈕對象上
button.setOnclickListener(new Listener());
5.得到Intent對象當中的值
Intent intent = getIntent();
String value1 = intent.getStringExtra("one");
int value2 = Integer.parseInt(value);
六、其他初級控制項使用
①ImageView
②RadioGroup和RadioButton
setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener())
③Checkbox
setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener())
④Menu
1.當客戶點擊MENU按鈕的時候,調用onCreateOptionMenu()方法
public boolean onCreateOptionMenu(Menu menu){
menu.add(0,1,1,R.string.id);
}
2.當客戶點擊MENU內部的具體某一個選項時,調用onOptionItemSelected()方法
public boolean onOptionItemSelected(MenuItem item){
if(item.getItemId() == 1){
finish();
}
return super.onOptionItemSelected(item);
}
七、Activity的生命周期
1.第一次創建時調用
protected void onCreat(Bundle saveInstanceState);
2.顯示出來時調用
protected void onStrat();
3.獲得用戶焦點時調用(可操作)
protected void onResume();
4.點擊彈出第二個Activity時調用
protected void onPause();
5.當第一個Activity不可見時調用
protected void onStop();
6.當返回第一個Activity時調用,代替OnCreate,因為沒被銷毀
protected void onRestart();
7.當返回第一個Activity時調用(先執行onStop,在執行,因為第二個Activity被銷毀,不能返回獲取,只能通過onCreat,onStart,onResume再創建)
protected void onDestory();
八、Task
1.Task是存放Activity的Stack棧。當點擊啟動第二個Activiry時,第一個Activtiy會被壓入Stack棧當中,第二個Activity會位於棧的頂部;當返回第一個Activtiy時,第二個Activity會被彈出Stack,第一個Activity會位於棧的頂部,以此類推。
注釋:當調用finish()時,當前的Activity會被Destory掉,棧中的Activity會消失。
2.當Activity都從Stack退出後,則就不存在Task。
九、高級控制項
①進度條ProgressBar
水平進度條style="?android:attr/progressBarStyleHorizontal"
圓圈進度條style="?android:attr/progressBarStyle"
用戶可視的visibility="gone"
②列表ListView
十、其他控制項
A.下拉菜單Spinner
1.創建一個ArrayAdapter:
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, //指上下文對象
R.array.plant_array, //引用了在文件中定義的String數組
android.R.layout.simple_spinner_item);//用來指定Spinner的樣式,可替換自定義
adapter.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);//設置Spinner當中每個條目的樣式
2.得到Spinner對象,並設置數據:
spinner=(spinner)findViewById(R.id.spinnerId);
spinner.setAdapter(adapter);
spinner.setPrompt("測試");//標題
3.創建監聽器
class SpinnerOnSelectListener implements OnItemSelectedListener{
@override
public void onItemSelected(
AdapterView<?> adapterView,//整個列表對象
View view,//被選中的具體條目對象
int position,//位置
long id){ //id
String selected = adapterView.getItemAtPosition(position).toString();
}
@override
public void onNothingSelected(AdapterView<?> adapterView){
S.o.p("nothingSelected");
}
}
4.綁定監聽器
spinner.setOnItemSelectedListener(new SpinnerOnSelectListener());
註:第二種動態設計
1.創建ArrayList對象
List<String> list = new ArrayList<String>();
list.add("test1");
2. 調用方法
ArrayAdapter adapter = new ArrayAdapter(
this, //指上下文對象
R.layout.item, //引用了指定了下拉菜單的自定義布局文件
R.id.textViewId,//id
list);//數據
3.得到Spinner對象,並設置對象
spinner.setAdapter(adapter);
spinner.setPrompt("測試");//標題
3.創建監聽器
class SpinnerOnSelectListener implements OnItemSelectedListener{
@override
public void onItemSelected(
AdapterView<?> adapterView,//整個列表對象
View view,//被選中的具體條目對象
int position,//位置
long id){ //id
String selected = adapterView.getItemAtPosition(position).toString();
}
@override
public void onNothingSelected(AdapterView<?> adapterView){
S.o.p("nothingSelected");
}
}
4.綁定監聽器
spinner.setOnItemSelectedListener(new SpinnerOnSelectListener());
B.DatePicker和DatePickerDialog
1.聲明一個監聽器,使用匿名內部類
DatePickerDialog.OnDateSetListener onDateSetListener
= new DatePivkerDialog.OnDateSetListener(){
public void onDateSet(
DatePicker view,
int year,
int monthOfYear,
int dayOfMonth){
S.o.p(year+"-"+motnOfYear+"-"+dayOfMonth)
}
}
2.復寫onCreateDialog(int id)方法:
@override
protected Dialog onCreateDialog(int id){
switch(id){
case DATE_PICKER_ID:
return new DatePickerDialog(this,onDateSetListener,2019,11,25);
}
return null;
}
3.使用時調用showDialog()方法
showDialog(DATE_PICKER_ID);
C.AutoCompleteTextView
B.Widget
C.Animatin
十一、實現ContentProvider過程
1.定義一個CONTENT_URI常量
2.定義一個類,繼承ContentProvider
3.實現query、insert、update、delete、getType和onCreate方法
4.在AndroidManifest.xml當中進行聲明
㈡ Android中數組是怎麼使用的
這樣汪檔棚應該會困則報nullPointerExcepton吧你的數組變數Lei都沒有new出來,只是聲明了public static Rect[][] Lei = new Rect[行數][列數];填蠢巧充數據應該沒有問題Lei[0][0] = new Rect(10, 10, 10+y, 10+x);
㈢ android中string-array怎麼使用
在Android中,用string-array是一種簡單的提取XML資源文件數據的方法。
例子如下:把相應的數據放到values文件夾的arrays.xml文件里
然後在Activity里,直接使用
Resources res =getResources();
String[] city=res.getStringArray(R.array.city);
即可取得string-array name="city"下的所有item數據,簡單又方便的一種方法。
㈣ 如何清空byte數組
一般是這么用的
byte[] tmp = null;
可以用其它數據來初始化tmp,模猜如圖片等用IO流初始化。
然後進行一消做系列的操作後
需要清拿碼衡空tmp,直接 tmp=null; 就OK了。
㈤ android :關於循環textView 與數組的問題
其實這類似一個二維數組。如果我來實現的話,嵌套for循環實現吧,水平方向循仿宏察環new LinearLayout,添加所有列,並add到HorizontalScrollView中;垂直方向循環new TextView,並且add到LinearLayout中。這樣實現出來的效果是可以左右滾動,但是不可以上下滾動。
按你的想法應該是,垂直方向一個ListView,那你不要循環去new ListView,這肯定有問題;如果你的橫向數組是恆定的,那你可以定義一個CustomLayout,就像上面圖,你可以定義4個TextView,使用一個adapter,inflate這個布局出來,然後動態實現你垂直方向數據添加,這些不用你循環,adapter的getView方法會幫你循環,你只要將數據元賦給adapter就行。如果你的橫向數據也不是恆定的,那你需要根據你橫向數據長度,來備茄循環new出N個TextView,再添加到一個Linearlayout中,然後你可以將Linearlayout循環到ListView里邊去。但是我不清楚listView和HorizontalScrollView放在一起會不會有手勢的絕迅沖突問題,需要你自己去實現。
㈥ Android編程時返回值為數組的方法怎樣調用,才能取出利用方法賦值給數組的結果
我模擬一下:
java">publicint[]get(){
returnnewint[1];
}
//調用get()
int[]array=get();
//使用array
System.out.println(array[0]);
㈦ android 數組如何取之
在 Android 中,可以使用以下方式來獲取數組中的元素:
通過索引獲伍遲取元素:使用數組名和索引號來獲取數組中的元素。例如,如果數組名為 myArray,要獲取第一個元素,可以使用 myArray[0]。
使用循環遍歷數組:使用循環結構(如 for 循環)遍歷數組中的所有元素,並逐個獲取它們。
使用數組的內置方法:數腔帆李組類中提供了一些內置方法,如 Arrays.Of()、Arrays.sort() 等,可以用來獲取數組中的元素或對數組進行操作。
例如,以下代碼演示了如何使用索引和循環來獲取數組中的元素:
int[] myArray = {1, 2, 3, 4, 5};
// 通過索引獲取元素
int firstElement = myArray[0];
int thirdElement = myArray[2];
// 使用循環遍歷數組
for (int i = 0; i < myArray.length; i++) {
int element = myArray[i];
// 對每個元素進行轎歷操作
}
注意:在使用數組時,需要確保索引號不超出數組的范圍,否則會導致數組越界異常。
㈧ java怎樣清空int數組再重新賦值
int[] array = new int[1,2,3,4,5];
假設清凳梁沒棗納空渣睜array,
array = null
array = new int[5];
㈨ 用 Kotlin 寫 Android 3—數組,集合與字元串
相比 Java,在 Kotlin 里數組的寫法變化還是挺大的,用 xx-Array 的命名規則來聲明一個數組類型,並用 xx-ArrayOf 來進行初始化。
例如整型數組,IntArray 類型,IntArrayOf 是初始化方法,以此類推其他基礎類型也差不多。
要注意的是,String 類型的數組聲明有所不同,Array<String> 表示一個字元串數組,arrayOf 是初始化方法。由此也可以得出,像我們自己定義的一些模型類要是想聲明一個數組應該是和 String 一個用法。
雖說數組的聲明寫法上有差別,但在數組元素的基本使用上可以說相差不大。
Kotlin 里的容器類分三大類,並且每個類又分為不可修改和可修改兩種,這就好比 val 和 var 的變數聲明一樣。默認情況是不可修改的,要想對容器類進行類似增,刪,改的操作就要聲明可修改,即要加上前綴 Mutable-。和數組初始化方法類似,容器類的初始化方法也是 xx-Of 系列,xx 表示具體容器類型,例如如果是可變集合初始化那就是 MutableSetOf。
遍歷
三者都能進行 for-in 循環,
三者都能進行迭代器循環遍歷,
除此之外三者還能進行 forEach 循環遍歷,不過對 Map 來說有 API 24 的版本限制,其次雖說寫法簡單,但可能實用性不那麼強,畢竟實際開發中不會說僅做個簡單遍歷吧。所以我覺得記住上面兩種較通用的寫法就夠了。
字元串的常規方法沒有太大的改變,我們依然可以用 indexOf, subString, replace, split 等方法。對於類型轉換,Kotlin 中的字元串提供了 to-xxx 系列的方法,例如字元串轉整型 toInt,字元串轉浮點型 toFloat 等。
另外一個就是 Kotlin 里用 ${} 替換了 Java 中的 String.format 來用於字元串模板效果。
㈩ 如何清空android ListView控制項的內容
第一種方法:
listView.setAdapter(null);
第二種方法:
listAdapter.clear();。