Android 开发的几个小问题

最近在做 Android 开发,刚刚入门,遇到不少问题,累积了做重构时的习惯,遇到问题,好好解决,好好总结,于是整理如下:

一. Eclipse Error

1.'Missing contentDescription attribute on image' in XML

原因:缺少图片描述,在 ADT 16 开始会抛出这个警告,确保开发者为图片添加内容描述。

解决方法:为图片添加 android:contentDescription="@string/desc" 属性。

2. Buttons in button bars should be borderless

原因:两个 Buttons 放在一个布局里会被判断为按钮栏,需要添加样式取消它的边框。

解决方法: 在 Buttons 上添加属性 style="?android:attr/buttonBarButtonStyle" 。系统提示也可以在按钮的父布局上添加 style="? android:attr/buttonBarStyle" 属性,但是我在线性布局上测试了一下无效,求高手指导!

二. 开发技巧

1. 在新打开的 Activity 中触发前一个 Activity 作出调整

例如:原页面相应的 class 为 Main.class (主要代码)

public class Main extends Activity {

	Button page;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		page = (Button) findViewById(R.id.open);

		page.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View source) {
				Intent intent = new Intent(Main.this, NewPage.class);

				// 启动 intent 对应的 Activity ,并且等待其返回结果,其中 0 是标识码
				startActivityForResult(intent, 0);
			}
		});
	
	@Override
	public void onActivityResult(int requestCode, int resultCode, Intent intent){
		
		if( requestCode == 0 && resultCode == 0 ){ // 确认请求标识码和反馈结果标识码同为 0
			// 改变本页面或其他操作
		}
	}

}
public class NewPage extends Activity {

	Button cancel;

	Intent intent;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.newpage);
		
		// 获取到上一个页面传过来的 Intent
		intent = this.getIntent();

		cancel = (Button) findViewById(R.id.confirm);
		cancel.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View source) {
				// 反馈结果,将 intent 传回上一个 Activity ,这时在上一页触发 onActivityResult 方法,重写该方法可以对原页面作出调整
				NewPage.this.setResult(0, intent);
				NewPage.this.finish();
			}
		});

	}

}

如果需要在 Activity 之间传输数据,还可以使用 Bunble 在 intent 中保存和获取数据。

2. 获取列表中被点击事项的位置

扩展 BaseAdapter 类,重写 getView 方法,第一个方法即为事项的位置,若要配合 cursor 使用,则可以使用 cursor.moveToPosition(position) 把 cursor 移动到事项在数据库中相应的数据行。

本文由 Kayo Lee 发表,本文链接:https://kayosite.com/some-problems-of-android-development.html

评论列表

  • 评论者头像
    回复

    不懂得路过

  • 评论者头像
    回复

    没弄过Android,不知为何物,你是7号报道么?

    • 评论者头像
      回复

      @独自流浪 打酱油的玩了一下Android,发现跟写页面的逻辑挺像的!
      11号报道了,已经开工两天!

  • 评论者头像
    回复

    没做过手机开发,难吗? :wink:

    • 评论者头像
      回复

      @ilikecss 逻辑上跟写页面比较相似,只是玩一下的话感觉不是很难,挺有趣的!

  • 评论者头像
    回复

    我准备试试用Xamarin试试.Net写Android程序

  • 评论者头像
    回复

    Android原生的UI设计特别坑爹。。。你有用什么其他比较好的设计软件弄布局文件吗??

    • 评论者头像
      回复

      @Ruii 我之前是直接用官方的 adt-bundle去做 Android,同感觉布局很坑爹。最近打算试试 android studio,它其中一个卖点就是功能强大的布局编辑器,可以拖拉 UI 控件并进行效果预览,希望这个软件有助于控制布局啦!

回复

你正在以游客身份访问网站,请输入你的昵称和 E-mail