android_学习练习3
练习1:呈现menu 菜单的例子 增加 删除 退出package com.hoocy;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;public class ex01 extends Activity {public static final int ADD_ID = Menu.FIRST;public static final int DELETE_ID = Menu.FIRST + 1;public static final int EXIT_ID = Menu.FIRST + 2;@Overridepublic void onCreate(Bundle icicle) {super.onCreate(icicle);setContentView(R.layout.main);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {super.onCreateOptionsMenu(menu);menu.add(0, ADD_ID, 0, R.string.menu_add);menu.add(0, DELETE_ID, 1, R.string.menu_delete);menu.add(0, EXIT_ID, 2, R.string.menu_exit);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()) {case ADD_ID:setTitle("Insert...");break;case DELETE_ID:setTitle("Delete...");break;case EXIT_ID:finish();break;}return super.onOptionsItemSelected(item);}}
<?xml version="1.0" encoding="utf-8"?><resources><string name="hello">123</string><string name="app_name">ex01</string><string name="menu_add">Add Item</string><string name="menu_delete">del Item</string><string name="menu_exit">Exit</string></resources>
……
练习2.使用Button按钮的事件
package com.hoocy;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;public class ex02 extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn = (Button)findViewById(R.id.button); Button btn2 = (Button)findViewById(R.id.button2); btn.setOnClickListener(new Button.OnClickListener(){public void onClick(View v) {setTitle("this is OK button");} }); btn2.setOnClickListener(new Button.OnClickListener(){public void onClick(View v) {finish();} }); }} 其中添加事件代码还可以写成
OnClickListener listener = new OnClickListener() {public void onClick(View v) {setTitle("this is OK button");}};OnClickListener listener2 = new OnClickListener() {public void onClick(View v) { finish(); }};btn.setOnClickListener(listener);btn2.setOnClickListener(listener2);
main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><TextViewandroid:id="@+id/tv" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="" /><Button android:id="@+id/button"android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="ok"/> <Button android:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Exit"/></LinearLayout>
……
练习3.使用程序内部设计布局
ex04.java
package com.hoocy;import android.app.Activity;import android.graphics.Color;import android.graphics.drawable.Drawable;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageButton;import android.widget.LinearLayout;public class ex04 extends Activity {private final int WC = LinearLayout.LayoutParams.WRAP_CONTENT;@Overridepublic void onCreate(Bundle icicle) {super.onCreate(icicle);//誕生一個LinearLayout 的集合型的View 物件,並且設定為垂直型佈局。LinearLayout layout = new LinearLayout(this);layout.setOrientation(LinearLayout.VERTICAL);//其誕生一個按鈕物件、設定/res/drawable/ok.jpg為它的前景圖像、并指定事件处理函数ImageButton btn = new ImageButton(this);Drawable dw = this.getResources().getDrawable(R.drawable.ok);btn.setImageDrawable(dw);btn.setOnClickListener(listener);//其誕生一個LayoutParams物件,並且把WC存入該物件,此明我們希望這按鈕的長寬大小。LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(WC, WC);//就把ImageButton 或Button 物件加入到layout 成為一組。layout.addView(btn, param);ImageButton btn2 = new ImageButton(this);dw = this.getResources().getDrawable(R.drawable.exit);btn2.setImageDrawable(dw);btn2.setOnClickListener(listener2);layout.addView(btn2, param);LinearLayout out_layout = new LinearLayout(this);out_layout.setOrientation(LinearLayout.HORIZONTAL);Button btn3 = new Button(this);btn3.setText("Cancel");btn3.setTextColor(Color.WHITE);btn3.setBackgroundColor(Color.RED);btn3.setOnClickListener(listener3);out_layout.addView(layout, param);LinearLayout.LayoutParams param2 = new LinearLayout.LayoutParams(WC, WC);param2.topMargin = 30;out_layout.addView(btn3, param2);setContentView(out_layout);}OnClickListener listener = new OnClickListener() {public void onClick(View v) {setTitle("this is OK button");}};OnClickListener listener2 = new OnClickListener() {public void onClick(View v) {finish();}};OnClickListener listener3 = new OnClickListener() {public void onClick(View v) {setTitle("this is Cancel button");}};}
练习4:List菜单
package com.hoocy;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.AdapterView.OnItemClickListener;public class ex05 extends Activity implements OnItemClickListener {public static final int RELOAD_ID = Menu.FIRST;public static final int EXIT_ID = Menu.FIRST + 1;ListView lv;ArrayAdapter<String> adapter;DataModel dm;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);dm = new DataModel();lv = new ListView(this);adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, dm.loadData());lv.setAdapter(adapter);lv.setOnItemClickListener(this);setContentView(lv);}@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {setTitle("choice: " + String.valueOf(dm.getPrice(arg2)));}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {super.onCreateOptionsMenu(menu);menu.add(0, RELOAD_ID, 0, "Reload");MenuItem im = menu.findItem(RELOAD_ID);im.setIcon(R.drawable.reload_im);menu.add(0, EXIT_ID, 1, "Exit");im = menu.findItem(EXIT_ID);im.setIcon(R.drawable.exit_im);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()) {case RELOAD_ID:adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, dm.loadData());lv.setAdapter(adapter);break;case EXIT_ID:finish();break;}return super.onOptionsItemSelected(item);}}
DataModel .java
package com.hoocy;public class DataModel {private String[] data, xdata;private double[] price;private boolean k = true;public DataModel() {data = new String;data = "Item-1";data = "Item-2";data = "Item-3";xdata = new String;xdata = "Prod-x";xdata = "Prod-y";xdata = "Prod-z";price = new double;price = 305.5;price = 56.75;price = 100.25;}public String[] loadData() {k = !k;if (k)return xdata;elsereturn data;}public double getPrice(int i) {return price;}}
页:
[1]