Android學生空間界面設計涉及到的常用基本控件有TextView,EditText,Button,ImageView,CheckBox,RadioButton,基本事件有觸屏和鍵盤事件,包括onTouchEvent,View.OnKeyListener等,菜單包括選項菜單和上下文菜單,消息通知Notification
近一個月的學習,讓我對Android有了一個初步的認識,學習Android從基礎知識學起。這一章學的為基本的界面設計,其中有著界面佈局,控件,事件,消息通知。在學習中我學會了如何跟著老師的思路,再通過課後的學習和練習來鞏固自己在課上學到的知識。這當中也遇到了許多基本的Android問題,包括如何建立一個layout佈局,以及界面控件中TextView,EditText中layout的設計和居中,居右,居左問題,以及layout的完整性。
基本控件很簡單,有些組件需要在Java中定義它們,如
private ImageView image;
private RadioButton cmh;
還需用findViewById獲取組件的ID,如:
image = (ImageView) findViewById(R.id.image);
chkchinese=(CheckBox)findViewById(R.id.chb_Chinese);
組件按鈕需設置監聽,在按鈕的onClick重獲取組件並顯示
btnConfirm.setOnClickListener(new View.OnClickListener{
@Override
public void onClick(View view){
String name=edtname.getText.toString;
我覺得Java中的代碼是需要一步一步來編寫的,這其中需要思考的,不能按部就班的寫代碼。在學習中解決問題,複習學過的知識。
控件所遇到的問題,以及解決的方法:
控件要設置ID的需要設置,需要獲取的必須寫上。
在寫RadioButton時需要一個Radiogroup來寫時,不能在其中設置linerlayout,否則會破壞group中只能單選按鈕的規則。
在imageView中用圖時需要從drawerable中把圖片放進去。
TextView中跑馬燈的效果需要用android:ellipsize="marquee";
觸屏中的問題比較難理解,反正就是當按鈕被點擊時,方法的調用,處理觸屏事件:
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction==MotionEvent.ACTION_DOWN) {
float x=event.getX;
float y=event.getY;
String pos="x座標:"+x+",y座標:"+y;
Toast.makeText(this,pos,Toast.LENGTH_LONG).show;
}
return super.onTouchEvent(event);
}
菜單以及通知
public boolean onCreateOptionsMenu(Menu menu){
//1.動態菜單
menu.add(Menu.NONE,Menu.FIRST+1,1,"保存").setIcon(android.R.drawable.ic_menu_save);
menu.add(Menu.NONE,Menu.FIRST+2,3,"刪除").setIcon(android.R.drawable.ic_menu_delete);
menu.add(Menu.NONE,Menu.FIRST+3,2,"打開").setIcon(android.R.drawable.ic_menu_add);
//2.子菜單
SubMenu subMenu=menu.addSubMenu("子菜單");
subMenu.add(0,101,0,"子菜單1");
subMenu.add(0,102,0,"子菜單2");
//3.從xml加載
getMenuInflater.inflate(R.menu.main,menu);
MenuInflater inflater=getMenuInflater;//獲取菜單加載器
inflater.inflate(R.menu.main,menu);//加載菜單的xml到menu對象
return true;
}
消息通知用toast定義,如
Toast.makeText(MainActivity.this,info,Toast.LENGTH_LONG).show;
}
});
這之上的基本就是這章的全部內容,在Android中的學習不侷限於課上的學習,課後學習和練習也是很重要的。在練習中遇到的問題大都可以通過Internet解決,所以大都來自前輩的經驗,他們也是不斷地練習來總結的。不過Java代碼中的編寫是我的難點,Java沒學到位是我的痛,所以在activity中Java代碼需要記住如何實現一個一個程序的功能,通過模仿學習,不斷總結,不斷解決所遇到的問題來完成學習。