记录android开发学习第一课。

时间:2021-09-13 20:14:07
 

打算学习android开发,是因为最近想静下心来做点小应用。不知道现在学习还晚不晚。不过我已经打算把学习笔记记录在csdn上了。另外说一点,csdn的编辑器在ie9下用起来很不爽。

但愿我可以坚持下来。

话不多说,直接杀入主题。对于我这个 初级选手来说,开始的就是android开发环境的搭建。

我选择的开发工具是Eclipse Classic 3.7.2 地址在http://www.eclipse.org/downloads/ 地球人都知道。

当然了,必须下载相关的android插件。包括android sdk 和android虚拟器。好吧,这个教程很多,我就不累赘了。其实这个还应该多搭配几次。

但是让人蛋疼的是,下载个android sdk包需要几个小时,而且时不时还弹出让人注册的窗口。但是为了学习,只能这样了。

一切还算顺利,helloword程序写出来了。用的2.2模拟器运行。还是可以正常显示的。

import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;

/*
* 创建activity的要点:
* 一个activity就是一个类,集成activity
* 复写onCreate方法
* 每一个activity都需要在androidManifest.xml文件中进行配置
* 为activity添加必要的控件。
*/
public class Activity_01Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView myTextView = (TextView) this.findViewById(R.id.myTextView);
Button myButton = (Button) this.findViewById(R.id.myButton);
myTextView.setText("我的第一个textView");
myButton.setText("我的第一个按钮" + "\n" + "nihao");
}


值得记录的是第二程序。学习Intent的时候出现了一个让人蛋疼的问题。想了很久,最后是模拟器版本的问题。

我先把目的说下。从Activity_01.java这个应用传递到Activity_02.java里。

代码是这样的。

Activity_02Activity.java

package erfei.activity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class Activity_02Activity extends Activity {
/** Called when the activity is first created. */
private Button mybutton = null;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mybutton = (Button)this.findViewById( R.id.myButton);
mybutton.setOnClickListener(new MyButtonListener());

}

class MyButtonListener implements OnClickListener{

@Override
public void onClick(View v) {

Intent intent = new Intent();
intent.setClass(Activity_02Activity.this, OtherActivity.class);
//Activity_02Activity.this.setIntent(intent);
startActivity(intent);
}



}

}

另个activity我是这么写的。

package erfei.activity;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class OtherActivity extends Activity {
private TextView myTextView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
//使用other的布局
this.setContentView(R.layout.other);
myTextView = (TextView)this.findViewById(R.id.myTextView);
myTextView.setText(R.string.other);
}

}


相关配置文件我已经配置好了。经检查也没有问题。比如AndroidManifest.xml里对两个activity的配置。以及对布局的配置,包括main.xml和other.xml。在这里不得不说一点:

一开始我是在eclipse里直接复制main.xml然后改文件名成other.xml。这个时候,gen文件下应该自动生成相关控件的,但是没有反映,只有main.xml文件变化R.java才会变化。other.xml没有变化。我一开始以为是没有刷新的缘故。后来测试好多遍都不是。于是我干脆把other.xml删除掉。点右键新建一个other.xml然后,复制相关代码并修改才可以。

也许是自动生成机制的问题。我现在想。希望有朋友了解的可以回答小弟。

接下来就说模拟器版本的问题。一开始用的2.2版本的。intent怎么都传递不了。

后来我换成1.6的,就好了。

问题是2.2如何传?这是我下节课需要思考的问题。有没有相同的朋友遇到过这个问题呢?