標籤:四種 展示 adapter listener nbsp ret 引入 提示 progress
一、控制項
1、大小
match_parenr:與父布局大小一樣
fill_parent:與match_parent一樣
wrap_content:控制項大小剛好包住裡面內容
2、TextView 在介面上顯示一段文字
android:text = "顯示的文字"
android:gravity:"文字對齊" //可選值有top、bottom、right、center,可以用|來指定多個值
android:textSize:文字大小
android:textColor :文字顏色
3、Button 按鈕
android:text:顯示文字
android:textAllCaps:大小寫轉換禁用、預設全部轉換為大寫
註冊監聽器
button.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){}
})
4、EditText 輸入和編輯內容
android:hint="提示輸入的內容"
android:maxLines="最多輸入行數"
5、ImageView 展示圖片
android:src="@drawable/圖片"
更改圖片內容
image.setImageResource();
6、progressBar 進度條
android:visibility=“是否可見”、 visibility 可見 invisible隱藏 gone 完全不可見 且不佔據空間
修改樣式
style:"?android:attr/progressBarStyleHorizontal"//水平進度條
設定可見度
setVisibility(VIew.VISIABLE);//View.INVISIBLE,View.GONE;
7、AlterDialog
彈出對話方塊
8、ProgressDialog
二、四種布局
1、LinearLayout線性布局
android:orientation 方向
android:layout_gravity=布局中位置
android:layout_weight=控制項大小比例
2、RelativeLayout 相對布局
3、FrameLayout 幀布局
4、百分比布局
三、自訂控制項
1、建立布局
建立layout.xml檔案
2、在mainlayout.xml檔案中引入布局檔案
<include layout="layout.xml">
3、編寫事件
LayoutInflater.from(Context).inflater(R.layout.XXX,this);
4、或者在布局檔案中引入自訂控制項事件檔案
<packagename.activityfile
android:layout_width=""
android:layout_height=""/>
四、ListView 用於展示大量資料
1、編寫布局檔案及展示的布局檔案
<ListView
andriod:id=
andrioid:layout_width=""
andriod:layout_height="">
2、建立展示的類
class Fruit{}
3、重寫適配器Adapter
public class FruitAdapter extends ArrayAdapter<Fruit>{
private int resourceId;
public FruitAdapter(Context context,int textViewResourceId,List<Fruit>objects){
super(context,textViewResource,objects);
resourceId = textViewResourceId;
}
public View getView(int position,View convertView,ViewGroup parent){
Fruit fruit = getItem(position);
View view = LayoutInflater.from(getcontext()).inflate(resourceId,parent,flase);
TextView textview =view.findViewById(R.id.textview);
return view;
}
4、修改mainActivity
FruitAdapter fruitadapter = new FruitAdapter(MainActivity.this,R.layout.fruit_item,fruitlist);//展示的上下文,layout布局,展示的資料list
ListView listview = findViewById(R.id.list_view);
listview.setAdapter(adapter);
5、最佳化
1.converView,將之前載入好的布局進行緩衝,以便之後可以複用
if(convertView == null){
view = LayoutInflater.from(getContext()).inflater(resourceId,parent,false);
}else{
view = convertView;
}
2、建立viewHolder內部類,對控制項執行個體進行緩衝,從而只擷取一次布局執行個體
}
五、RecyclerView 對ListView進行最佳化
1、引入
在build.gradle中dependence中添加
implement ‘com.android.support:recyclerview-v7:24.2.1‘
之後sync now進行同步
2、使用 在layout檔案中
<android.support.v7.widget.RecyclerView
android:id="@+id/"
android:layout_wight=" "
android:layout_height="" />
3、建立適配器
public class FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder>{
static class ViewHolder extneds Recycler.ViewHolder{ }; // viewHolder 內部類
public FruitAdapter (){ }; //建構函式
public ViewHolder onCreateViewHolder(ViewGroup parent,int position){
View view = LayoutInflate.from(parent.getContext()).inflate(R.layour.fruit_layout,parent,false);
ViewHolder viewholder = new ViewHolder(view);
return viewholder;
}
public viod onBindViewHolder(ViewHolder holder ,int position){
Fruit fruit = furitlist.get(position);
holder.fruitImage.setImageREsource(fruit.getImageId());
holder.fruitname.setText(fruit.getname());
}
public int getItemCount(){
return fruitlist.size();
}
}
4、修改mainActivity
RecyclerView recyclerview = (RecyclerView)findViewById(R.layout.id.recyclerview);
LinerLayoutManager layoutmanage = new LinerLayoutManager(this);
recycleView.setLayoutManager(layoutManager);
FruitAdapter adapter = new FruitADapter(fruitlist);
recyclerView.setAdapter(adapter);
第一行代碼Android-------第二章控制項部分