胡神

导航

一些android 技巧汇总(menu,activity,AlertDialog...)

1.在测试时,如何实现一个提示 可以使用

1.Toast.makeText(this, "这是一个提示", Toast.LENGTH_SHORT).show();

2.//从资源文件string.xml 里面取提示信息

3. Toast.makeText(this, getString(R.string.welcome), Toast.LENGTH_SHORT).show(); 这个提示会几秒钟后消失

2.可以使用AlertDialog.Builder 才产生一个提示框. 例如像messagebox那样的

1. new AlertDialog.Builder(this)

2. .setTitle("Android 提示")

3. .setMessage("这是一个提示,请确定")

4. .show(); 带一个确定的对话框

1.new AlertDialog.Builder(this)

2. .setMessage("这是第二个提示")

3. .setPositiveButton("确定",

4. new DialogInterface.OnClickListener(){

 5. public void onClick(DialogInterface dialoginterface, int i){

 6. //按钮事件

7. }

8. })

9. .show(); AlertDialog.Builder 还有很多复杂的用法,有确定和取消的对话框

1.new AlertDialog.Builder(this)

2. .setTitle("提示")

3. .setMessage("确定退出?")

4. .setIcon(R.drawable.quit)

 5. .setPositiveButton("确定", new DialogInterface.OnClickListener() {

6. public void onClick(DialogInterface dialog, int whichButton) {

7. setResult(RESULT_OK);//确定按钮事件

8. finish();

9. }

10. })

11. .setNegativeButton("取消", new DialogInterface.OnClickListener() {

 12. public void onClick(DialogInterface dialog, int whichButton) {

 13. //取消按钮事件

14. }

15. })

16. .show();

3.menu 的用法.

1.public static final int ITEM_1_ID = Menu.FIRST;

2.public static final int ITEM_2_ID = Menu.FIRST + 1;

3.public static final int ITEM_3_ID = Menu.FIRST + 2;

4.

5.public boolean onCreateOptionsMenu(Menu menu) {

6. super.onCreateOptionsMenu(menu);

7.//不带图标的menu

8. menu.add(0, ITEM_1_ID, 0, "item-1");

9.//带图标的menu

10. menu.add(0, ITEM_2_ID, 1, "item-2").setIcon(R.drawable.editbills2);

11. menu.add(0, ITEM_3_ID, 2, "item-3").setIcon(R.drawable.billsum1);

12. return true;

13.}

14.

15.public boolean onOptionsItemSelected(MenuItem item){

16. switch (item.getItemId()) {

17. case 1:

18. Toast.makeText(this, "menu1",Toast.LENGTH_SHORT).show();

19. return true;

20. case 2:

21.

22. return true;

 23. case 3:

24.

25. return true;

26. }

27. return false;

28. }

4.Activity 的切换 2个Activity 的切换,没有数据传递

1.//从A到B

2.Intent intent = new Intent();

3. intent.setClass(A.this, B.class);

 4. startActivity(intent);

 2个Activity 之间传递数据 相关的几个函数 startActivityForResult public final void setResult(int resultCode, String data) 回调函数 protected void onActivityResult(int requestCode, int resultCode, Intent data) 例如A到B,从B得到数据

1.//A到B

2.static final int RG_REQUEST = 0;

3.Intent intent = new Intent();

4.intent.setClass(A.this, B.class);

5.startActivityForResult(intent,RG_REQUEST);

6.

7.//在B中处理

8.Bundle bundle = new Bundle(); bundle.putString("DataKey", edittext.getText().toString());//给bundle 写入数据 Intent mIntent = new Intent(); mIntent.putExtras(bundle); setResult(RESULT_OK, mIntent); finish();

9.

10.//最后在A的回调函数里面接收数据

11.if (requestCode == RG_REQUEST) { if (resultCode == RESULT_CANCELED) setTitle("Canceled..."); else if(resultCode == RESULT_OK) { setTitle((String)data.getCharSequenceExtra("DataKey")); } }

posted on 2011-05-01 13:11  胡神  阅读(1397)  评论(0编辑  收藏  举报